2017-08-09 110 views
1

我想在我的Laravel應用程序中構建無限滾動功能。當用戶訪問我的頁面時,我會使用PHP加載前10個項目。Laravel無限滾動

MyModal::skip(0)->take(10)->get() 

我肯定能得到下一個項目使用

MyModal::skip(10)->take(10)->get() 

但問題是,當有新的entrys增加而我滾動至底部。我怎麼能告訴Laravel「給我從ID X的項目開始的下10個項目」

我希望你能理解我的問題。

+1

你試過分頁了嗎? –

+0

當請求下一個項目時,您還可以從列表中發送「first id」(因此即使在流程中添加了新項目),並使用分頁查詢大於該id的項目...這就是我將如何處理 –

回答

0

你可以使用這樣的方法。您可能有一條路徑作爲錨點鏈接插入到視圖的末尾,並使用AJAX調用接下來的10個結果。

所以,路線應該是這樣的:

Route::get('/mymodal/{skip?}', '[email protected]'); 

這就需要控制器與可能跳過一些項目。然後下一個跳過值將被髮送到視圖和結果。

public function nextItems(Request $request, $skip = 0) { 
    $results = MyModal::skip($skip)->take(10)->get(); 
    return view('mymodals.theview', [ 
      'results' => $results, 
      'skip' => $skip + 10 
    ]); 
} 

,然後在視圖中,你跳過值添加到錨:

@foreach ($results as $r) 
    (...) 
@endforeach 

<a href="{{action('[email protected]', $skip)}}">Next page...</a> 

希望你的想法。我在一個項目中使用了同樣的想法,但將時間戳作爲參數,並且工作完美無瑕。