前提
あるシステムを作成中なのですが、deleteボタンを押下しても、データ1行の削除が上手くいかない
実現したいこと
deleteボタンを押下された1行分のデータが削除されること
発生している問題・エラーメッセージ
deleteボタンを押下してもデータが削除されず、URLの末尾に?と削除されるはずのデータのIDが表示されるだけである
該当のソースコード
@extends('dashboard-layout') @section('content') <h1>ユーザー一覧</h1> <a href="{{ route('admin.users.create') }}" class="btn btn-success">作成</a> <table class="table"> <thead> <tr> <th class="text-center">#</th> <th>ユーザー名</th> <th>メールアドレス</th> </tr> </thead> <tbody> @foreach($users as $user) <tr> <td class="text-center">{{ $user->id }}</td> <td>{{ $user->name }}</td> <td>{{ $user->email }}</td> {{--<td>Develop</td>--}} <td class="td-actions text-right"> <button type="button" rel="tooltip" class="btn btn-success"> <a href="{{ route('admin.users.edit', [$user->id]) }}" class="text-white"><i class="material-icons">edit</i></a> </button> <button type="button" rel="tooltip" class="btn btn-success"> <a href="{{ route('admin.users.index', [$user->id]) }}" class="text-white"><i class="material-icons">delete</i></a> </button> <button type="button" rel="tooltip" class="btn btn-danger"> <i class="material-icons">close</i> </button> </td> </tr> @endforeach </tbody> </table> @endsection
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Service\UserService; //追加 use App\Models\User; class UserController extends Controller { private $user_service; public function __construct(UserService $user_service) { $this->user_service = $user_service; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { $users = $this->user_service->getAllUsers(); return view('admin.users.index', ['users' => User::query()->paginate()]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Show the form for deleting the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function delete(Request $request, $id) { $param = ['id' => $request->id]; DB::delete('delete from users where id = :id',$param); return view('admin.users.index', ['users' => $user]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } }
<?php /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Auth::routes(); Route::get('/home', 'HomeController@index')->name('home'); Route::group(['prefix' => 'admin', 'as' => 'admin.', 'namespace' => 'Admin'], function () { Route::group(['prefix' => 'stores', 'as' => 'stores.'], function () { Route::get('/', 'StoreController@index')->name('index'); Route::get('create', 'StoreController@create')->name('create'); Route::get('{store}/edit', 'StoreController@edit')->name('edit'); Route::patch('{store?}', 'StoreController@update')->name('update'); Route::put('{store?}', 'StoreController@update')->name('create.exec'); }); Route::group(['prefix' => 'coupons', 'as' => 'coupons.'], function () { Route::get('/', 'CouponController@index')->name('index'); Route::get('create', 'CouponController@create')->name('create'); Route::get('{coupon}/edit', 'CouponController@edit')->name('edit'); Route::patch('{coupon?}', 'CouponController@update')->name('update'); Route::put('{coupon?}', 'CouponController@update')->name('create.exec'); Route::get('{coupon?}', 'CouponController@detail')->name('detail'); }); Route::group(['prefix' => 'users', 'as' => 'users.'], function () { Route::get('/', 'UserController@index')->name('index'); Route::get('create', 'UserController@create')->name('create'); Route::get('{user}/edit', 'UserController@edit')->name('edit'); Route::get('{user}/delete', 'UserController@delete')->name('delete'); Route::patch('{user?}', 'UserController@update')->name('update'); Route::put('{user?}', 'UserController@update')->name('create.exec'); }); });
試したこと
UserControllerのdeleteメソッドの中身をこれともう一つのもので試しましたが、どちらもURLのみ変わるという状態
補足情報(FW/ツールのバージョンなど)
・自分のパソコン(Windows10)にDockerをインストール
・Laravel5.8.38(PHP)の開発
・MySQL
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。