2017-02-04 65 views
1

我有一組Ids作爲數組。這是一個複雜的搜索邏輯。例如我的數組是:是否可以在自定義foreach上實現Laravel分頁

array(2,5,1,8,9,12,83,32); 

這些ID中的每一個都是有效的並且表示帖子。所以我所做的只是在每個循環中循環它們並將所有數據收集到最終數組中。例如:

foreach($ArrayOfIds as $id) 
{ 
$posts[] = Post::findOrFail($id); 
} 

然後我發送這$職位到我的看法。在這種情況下是否可以實現laravel分頁?請記住,我無法再玩$ ArrayOfIds。

回答

1

是的,它是可能的,使用Illuminate\Pagination\LengthAwarePaginator

public function showPost() 
{ 
    $posts = []; 
    foreach($ArrayOfIds as $id) { 
     $posts[] = Post::findOrFail($id); 
    } 

    $perPage = 6; 
    $paginator = new LengthAwarePaginator($posts, count($posts), $perPage); 
    $items = $paginator->getCollection(); 

    return $paginator->setCollection(
     $items->forPage($paginator->currentPage(), $perPage) 
    ); 
} 

例如起初,我實例LengthAwarePaginator類,並與需要,see here的參數給它。然後,因爲我需要設置哪些帖子屬於哪個頁面,我然後使用forPage方法從Illuminate/Support/Collection

就是這樣的。

+0

感謝您的快速和乾淨的答覆。如果showPost()函數在JSON中響應呢? –

+0

沒關係。我想通了。非常感謝您的幫助。 –

相關問題