我有两个模型:任务和评论
在我的用户个人资料中,我想显示按创建日期排序的任务和评论。
为此我做:
$timeline_array = $customer->comments;
$timeline_array = $timeline_array->toBase()->merge($customer->tasks);
//sort timeline event
$timeline_array = $timeline_array->sortByDesc(function($timeline_event){
return $timeline_event->created_at;
});
我在视野中预测了我的阵列。它的工作正常,但如果我有太多的评论或任务,那将是一个很大的要求,所以我想添加一个分页器。
我该怎么做?
如果我最后有$timeline_array->paginate(5);
,我会收到错误:
方法Illuminate \ Support \ Collection :: paginate不存在。
而且我认为它并没有解决我的问题,因为我在分页之前加载了所有的评论和任务。
有人有想法/解决方案吗?
答案 0 :(得分:1)
终于找到了解决方案:
$timeline_array = $customer->comments;
$timeline_array = $timeline_array->toBase()->merge($customer->tasks);
//sort timeline event
$timeline_array = $timeline_array->sortByDesc(function($timeline_event){
return $timeline_event->created_at;
});
$item_per_page = 10;
$timeline_array = new LengthAwarePaginator($timeline_array->forPage(Paginator::resolveCurrentPage(), $item_per_page), count($timeline_array), $item_per_page, Paginator::resolveCurrentPage(), [
'path' => Paginator::resolveCurrentPath()
]);
答案 1 :(得分:0)
Paginate方法仅适用于查询构建器或口才, 有人在这里创建了一个要点,你可以在数组或集合上使用paginate:
https://gist.github.com/vluzrmos/3ce756322702331fdf2bf414fea27bcb
尝试使用它:
>>> import test_pkg.hidden_module
>>> test_pkg.hidden_module
<module 'test_pkg.hidden_module' from '.../test_pkg/hidden_module.py'>
或者将其作为宏添加到您的App Service Provider中以便更好地练习。