2017-05-05 55 views
0

我在Laravel中使用原始SQL查詢,因爲在開始進行復雜查詢時我更容易,所以我使用它們。Laravel使用原始查詢進行分頁

現在我想要得到的用戶7的評論列表,我想分頁的意見,在5

這就是我:

$comments = DB::select(DB::raw("SELECT users.name, reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;") 
    ,array('logged_user' => $user_id,)); 

所以此查詢依賴在諮詢視圖的用戶上,接收變量。

我看到的所有分頁都與雄辯查詢有關,我沒有找到任何明確的用法。如果我在最後一個括號的末尾添加了' - > paginate(5)',或者稍後添加了像$ comments-> paginate(5)這樣的變量,我得到一個:

錯誤:調用的陣列

這方面的一些光的成員函數PAGINATE()?

非常感謝! =)

回答

0

你這樣做的分頁。

$perPage = $request->input("per_page", 10); 
$page = $request->input("page", 1); 
$skip = $page * $perPage; 
if($take < 1) { $take = 1; } 
if($skip < 0) { $skip = 0; } 

$comments = DB::select(DB::raw("SELECT users.name, reviews.comment, reviews.comment_score FROM reviews JOIN users WHERE reviews.user_id = :logged_user;"),array('logged_user' => $user_id,)); 

$totalCount = $comments->count(); 
$results = $comments 
    ->take($perPage) 
    ->skip($skip) 
    ->get(); 
$paginator = new \Illuminate\Pagination\LengthAwarePaginator($results, $totalCount, $take, $page); 

return $paginator; 

希望它能幫助你!

+0

哇,我永遠不會想出這樣的伎倆。 =) 我有問題,因爲我沒有任何$ request變量。 我只想顯示一個歡迎頁面,一個用戶頁面的sumarised信息。 所以我得到:未定義變量:請求 謝謝! – ButterySAM777

+0

如果您想爲一位用戶分頁評論,需要在上面的代碼中進行一些調整,或者您可以爲特定用戶使用數據表評論分頁, –

+0

我知道,但我不知道如何獲得$ perPage和$ page變量。我沒有任何$ request變量。 我怎麼能得到這兩個變量初始化? 謝謝你的幫助。 – ButterySAM777