Php larvel-对非对象调用成员函数paginate()
我正在用Laravel做一个搜索页面,无法理解如何使用paginate方法来实现这种用法 我在别的地方用过,但不是这样 所以我的路线是:Php larvel-对非对象调用成员函数paginate(),php,laravel,pagination,Php,Laravel,Pagination,我正在用Laravel做一个搜索页面,无法理解如何使用paginate方法来实现这种用法 我在别的地方用过,但不是这样 所以我的路线是: Route::get('search', function() { $q = Input::get('srch-term'); $searchTerms = explode(' ', $q); $query = DB::table('blogs'); foreach($searchTerms as $term) { $query-
Route::get('search', function()
{
$q = Input::get('srch-term');
$searchTerms = explode(' ', $q);
$query = DB::table('blogs');
foreach($searchTerms as $term)
{
$query->where('blogtitle', 'LIKE', '%'. $term .'%')
->where('frontpage', '1')
->orderBy('id', 'desc');
}
$results = $query->get()->paginate(15);
$countBuilds = count($results);
return View::make('search', compact('results'));
});
这给了我标题上的错误。如果我不使用paginate方法,那么它可以正常工作
我哪里做错了
另请注意,我知道我不应该在路由中做我的DB事情,仍然在思考如何在路由中使用控制器等的函数,但这不适用于这里。你不能这样调用paginate。你必须有雄辩的集合。试着在
$results=$query->get()->paginate(15)中删除->get()
rowNo创建blog雄辩类并使用查询id创建where
。然后分页。@Rolice查询生成器也允许分页,不是吗?这个片段来自其他地方。但是,无需使用查询生成器,只需将查询放在一行:$results=DB::table('blogs')->where('blogtitle','LIKE','%'。$term'%')->where('tags','LIKE','%'。$term'%')->orderBy('id','desc')->分页(15)代码>我们成功了:)
Route::get('search', function()
{
$q = Input::get('srch-term');
$searchTerms = explode(' ', $q);
$query = DB::table('blogs');
foreach($searchTerms as $term)
{
$query = $query->where('blogtitle', 'LIKE', '%'. $term .'%')
->where('frontpage', '1')
->orderBy('id', 'desc');
}
//remove ->get()
$results = $query->paginate(15);
$countBuilds = count($results);
return View::make('search', compact('results'));
});