laravelでCRUD機能を持つシステムを作成しています。
検索ページ(index.blade)でキーワードを入力すると、その画面の下の方に
|id|名前|カテゴリ|処理
|:--|:--:|--:|
||||
のようにヒットした件数分表示させ、処理の行に削除ボタンを設置しています。
削除のアクション後に検索ページへリダイレクトするようにしています。
やりたいことは、削除後に検索ページへ戻った際に、最初に入力したキーワードで
検索してある状態にしておきたいのですがどうしたらよいのか調べてもわかりませんでした。
よろしくお願い致します。
以下、ソースです。
index
@foreach($results as $result) <tr> <td>{{ $result -> id}}</td> <td>{{ $result -> name}}</td> <td>{{ $result -> category}}</td> <td> {!! Form::open(['route' => 'sample/delete', 'method' => 'post', 'id' => 'Form', 'name' => 'Form']) !! {{ csrf_field() }} <input type='hidden' name='id' value='{{$result->id}}'> <input type="submit" value="削除" class="btn btn-danger btn-xs btn-destroy"> {{ Form::close() }} </td>
SampleController
use Pingpong\Modules\Routing\Controller; use DB; use Request; use Illuminate\Support\Facades\Input; use Auth; use Session; . . . . /* * データ検索 */ public function search(Request $request){ $key = Request::Input('key'); if(Session::has('key')==true){ $key= Session::get('key'); } dd($key); $results = DB::table('sample') ->select('id','name,'category') ->where('name','like',"%$key%") ->get(); return view('sample.index',compact('results')); } /* * 削除処理 */ public function delete(Request $request){ $id = Request::Input('id'); $key = Request::Input('key'); <-入力されたキーワード //delete DB::table('sample') ->where('id',$id) ->delete(); $results = DB::table('sample') ->select('id','name,'category') ->where('name','like',"%$key%") ->get(); $request->session()->put('key',$result); return redirect()->route('sample.index');
ルート
Route::get('sample','SampleController@index']); Route::post('sample','SampleController@search']); Route::post('sample/delete','SampleController@delete']);
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/25 03:13
退会済みユーザー
2018/01/25 03:54
2018/01/25 04:46
退会済みユーザー
2018/01/25 12:06
2018/01/26 00:06
2018/01/26 01:51
退会済みユーザー
2018/01/26 04:30
2018/01/29 03:37