[英]Laravel search function crashes after page refresh
我遵循簡單的搜索功能
public function search(Request $request)
{
$posts = Post::where('title', 'like', '%'.$request->term.'%')->paginate(10);
return view('posts.search', compact('posts'));
}
我的路線:
Route::group(['prefix' => 'posts', 'as' => 'posts.'], function () {
Route::post('/search', ['as' => 'posts', 'uses' => 'SearchController@posts']);
});
我的觀點是:
<form action="{{ route('searches.posts') }}" method="post">
{{ csrf_field() }}
<div class="input-field col s6">
<input class="input blue-text text-lighten-3" type="text" name="term">
</div>
<div class="input-field col s6">
<button type="submit">
<i class="material-icons">search</i>
</button>
</div>
</form>
我提交后調用此函數並獲取包含與搜索相關的所有項目的新視圖。 到目前為止它工作,但如果我現在刷新頁面,我會得到以下錯誤:
Symfony \\ Component \\ HttpKernel \\ Exception \\ MethodNotAllowedHttpException沒有消息
您的表單方法是post
,因此在您的初始請求中,HTTP方法是POST。 刷新頁面時,瀏覽器發出GET請求而不是POST請求。
確保您的路由已注冊GET和POST請求:
Route::match(['get', 'post'], '/search', ['as' => 'posts', 'uses' => 'SearchController@search']);
https://laravel.com/docs/5.5/routing#basic-routing
您可能還想考慮將表單方法切換為get
。 這將使搜索參數顯示在URL中,並使用戶能夠鏈接到搜索結果。
您正在嘗試使用錯誤的控制器方法。 所以,改變這個:
'uses' => 'SearchController@snippets'
至:
'uses' => 'SearchController@search'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.