前回までの様子はこちら
お次はテーブルのデータを削除する処理を作成します。
まずは、ルーティング。
Route::get('/management/{id}/conform', 'RegisterManagementController@conform'); Route::post('/management/delete', 'RegisterManagementController@delete');
/management/{id}/conformにアクセスすると削除確認の画面が、
/management/deleteにアクセスすると、実際に削除処理を行うようにします。
次は一覧画面に削除確認画面へのリンクを作成します。
<td>{{ Html::link('/management/'.$list->id.'/conform', '削除') }}</td>
そして、削除確認画面。
@extends('layouts.app') @section('content') <div class="container"> <div class="row"> <div class="col-md-8 col-md-offset-2"> <div class="panel panel-default"> <div class="panel-heading">削除確認</div> <div class="panel-body"> {!! Form::open(['url' => action('RegisterManagementController@delete')]) !!} {!! Form::hidden('id', $item->id) !!} <table> <tr> <td>名前</td> <td>{!! $item->name !!}</td> </tr> <tr> <td>住所</td> <td>{!! $item->address !!}</td> </tr> <tr> <td>電話番号</td> <td>{!! $item->phone !!}</td> </tr> <tr> <td>人数</td> <td>{!! $item->num !!}</td> </tr> <tr> <td>宿泊日数</td> <td>{!! $item->days !!}</td> </tr> <tr> <td>宿泊日</td> <td>{!! $item->start_day !!}</td> </tr> </table> {!! Form::submit('削除') !!} {!! Form::close() !!} </div> </div> </div> </div> </div> @endsection
隠しパラメータにid番号を含め、formをSubmitしたときのパラメータにします。
次に、コントローラー。
/** * 削除確認 * * @return \Illuminate\Http\Response */ public function conform($id) { return view('register.conform', ['item' => $this->registerManagement->getItemById($id)]); } /** * 削除処理 */ public function delete(Request $request) { $this->registerManagement->deleteById($request->id); return redirect('management'); }
削除確認では、URLのID番号を受け取り、そのIDからデータを参照し、Viewに返しています。
削除処理では、$requestにID番号が入っていますので、そのIDをリポジトリに渡して、削除処理を行ったあと、一覧画面にリダイレクトします。
次はリポジトリ。
/** * 予約を削除する * * @return void */ public function deleteById($id) { $model = $this->getItemById($id); $model->delete(); }
IDでモデルを検索して、delete()メソッドを実行すれば、そのデータはデータベースから削除されます。
これで削除処理が完成しました。
次は、この情報から予約スケジュールを作成する処理を作成していきます。
↑よかったらクリックお願いします。
「【Laravel】テーブルのデータを削除する」への1件のフィードバック