是否可以在自定义foreach上实现Laravel分页

时间:2017-02-04 06:17:45

标签: php laravel-5.2

我将Ids设置为数组。它是一个复杂的搜索逻辑。例如,我的数组是:

require.ensure

这些ID中的每一个都有效并代表帖子。所以我所做的就是将它们循环到每个循环中,并将所有数据收集到最终数组中。示例:

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

然后我将这些$帖子发送到我的视图。在这种情况下是否可以实现laravel分页。请记住,我无法使用$ ArrayOfIds播放。

1 个答案:

答案 0 :(得分: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来提供它。然后,由于我需要设置哪些帖子属于哪个页面,然后我使用Illuminate/Support/Collection中的forPage方法。

类似的东西。