【发布时间】:2017-01-12 13:34:18
【问题描述】:
分页搜索结果
我刚开始使用 Laravel,我正在尝试使用适当的分页创建搜索功能。该功能适用于第一页,但在第二页上不起作用。我认为它没有将结果提供给下一页,但我似乎找不到答案。
这是我在 IndexController 中的搜索功能:
public function search()
{
$q = Input::get('search');
# going to next page is not working yet
$product = Product::where('naam', 'LIKE', '%' . $q . '%')
->orWhere('beschrijving', 'LIKE', '%' . $q . '%')
->paginate(6);
return view('pages.index', compact('product'));
}
这是我的路线:
Route::post('search{page?}', 'IndexController@search');
这是第二页的网址:
/search?page=2
这就是我显示分页的方式:
{{ $product->appends(Request::get('page'))->links()}}
错误:
MethodNotAllowedHttpException in RouteCollection.php line 218:
根据请求获取错误。
路线:
Route::get('search/{page?}', 'IndexController@search');
错误:
MethodNotAllowedHttpException in RouteCollection.php line 218:
in RouteCollection.php line 218
at RouteCollection->methodNotAllowed(array('GET', 'HEAD')) in RouteCollection.php line 205
at RouteCollection->getRouteForMethods(object(Request), array('GET', 'HEAD')) in RouteCollection.php line 158
at RouteCollection->match(object(Request)) in Router.php line 780
at Router->findRoute(object(Request)) in Router.php line 610
at Router->dispatchToRoute(object(Request)) in Router.php line 596
at Router->dispatch(object(Request)) in Kernel.php line 267
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
我希望我的问题是明确的并且格式正确。提前谢谢你(对不起我的英语不好)
答案:
我最终结合this帖子的一些帮助使用了这篇文章的答案
我在初始搜索中使用了 post 函数,在接下来的页面中使用了 get 函数。这是可能的,因为我现在正在对 URL 进行搜索。
编辑:
- 添加了初始错误。
- 添加了
Route::get错误 - 添加了答案
【问题讨论】:
-
你能发布完整的错误堆栈跟踪吗?
-
我在想。我可以使用 POST 路由进行初始搜索并使用第二个 GET 路由进行下一页修复吗?我认为我必须将 ?page=# 缓存为一条路线。
标签: php laravel search laravel-5 pagination