Laravel - 在非对象上调用成员函数paginate()

时间:2014-12-25 23:06:04

标签: 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->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方法,那么它可以正常工作。

我哪里错了?

P.S。作为旁注,我知道我不应该在路线中做我的DB事情,仍然在如何使用路径中的控制器等功能,但这不是在这里。

1 个答案:

答案 0 :(得分:3)

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')); 
});