2014-12-25 28 views
2

我正在Laravel中創建一個搜索頁面,並且無法理解如何在此用法中使用paginate方法。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.作爲一個方面說明,我知道我不應該在路線上做我的數據庫事情,還會讓我的頭腦在如何使用控制器等功能的路線,但這不是在這裏。

+0

您不能像這樣調用分頁。你必須有雄辯的收藏。 – Rolice

+2

嘗試刪除'$ results = $ query-> get() - > paginate(15)中的' - > get()';' – user3714582

+0

沒有創建博客雄辯課程並使用查詢ID製作whereIn。然後分頁。 – Rolice

回答

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')); 
}); 
相關問題