2017-06-05 12 views
2

こんにちは、検索フォームを設定するにはチュートリアルの手順を守っていますが、routeエラー(NotFoundHttpException)が表示されています。Laravel検索フォームの無効なルート

フォーム

{!! Form::open(['method'=>'GET' ,'url' => 'search', 'class'=>'form-group main-form', 'id'=>'search-form', 'role'=>'form']) !!} 
     {{ csrf_field() }} 
     <div style="display:none"><input name="utf8" type="hidden" value="✓"></div> 
     <input class="form-group main-form" id="q_objname_en_cont" name="searchKey" placeholder='Search by Job title' required="required" style="height:40px;width:60%" type="search"> 
     <input class="btn btn-warning" type="submit" value="Search"> 
    {!! Form::close() !!} 

ルート

URL(ブラウザ)

http://localhost:8000/search?_token=LJpgN3AwCFoDElOkFsSOX8BBLU1IFOzMvUYiokQj&utf8=%E2%9C%93&searchKey=quia 

答えて

2
はこれにあなたのルートを変更し

。検索パラメータをクエリ文字列として渡すときに、urlの2番目の部分は必要ありません。

Route::get('search', '[email protected]')->name('search'); 

フォームをこれに変更します。フォームGETメソッドを使用しているときにcsrfトークンを送信する必要はありません。

{!! Form::open(['method'=>'GET' ,'url' => 'search', 'class'=>'form-group main-form', 'id'=>'search-form', 'role'=>'form']) !!} 
<input class="form-group main-form" id="q_objname_en_cont" name="searchKey" placeholder='Search by Job title' required="required" style="height:40px;width:60%" type="search"> 
<input class="btn btn-warning" type="submit" value="Search"> 
{!! Form::close() !!} 

また、不要な入力<input name="utf8" type="hidden" value="✓">も削除しました。それが意図されていればそれを戻してください。

0

私はあなたが従っているチュートリアルに間違いはないと思いますが、セキュリティ上の懸念はなく、確かに、それはLaravelで検索を実装する適切な方法ではありません。あなたはcsrf_tokenをあらゆる要求そのルートに

あなたのアドバイスは、より良いリソースを読んで、ドキュメントを深く理解することです。

https://laracasts.com/discuss/channels/laravel/search-option-in-laravel-5?page=1