繁体   English   中英

如何分页对象数组laravel?

[英]how to paginate object array laravel?

当我尝试对登录用户传递的结果进行分页时,出现错误:

$message = Auth::user()->Notifications()->orderBy('created_at', 'desc')->get()
        ->groupBy(function($date) {
            return Carbon::parse($date->created_at)->format('M d'); // grouping by day
        })
        ->paginate(2);

调用未定义的方法Illuminate \\ Database \\ Eloquent \\ Collection :: paginate()

有什么问题,如何对对象数组进行分页?

尝试这个:

$message = Auth::user()->Notifications()->orderBy('created_at', 'desc')
    ->groupBy(function($date) {
        return Carbon::parse($date->created_at)->format('M d'); // grouping by day
    })->paginate(2);

paginate方法必须是链中的最后一个元素,例如-> get()

//编辑:如此处所述: http : //laravel.com/docs/4.2/pagination

注意:目前,使用Laravel无法有效执行使用groupBy语句的分页操作。 如果需要使用带有分页结果集的groupBy,建议您手动查询数据库并使用Paginator :: make。

这也可能会有所帮助: http : //www.jenssegers.be/blog/57/laravel-pagination-with-grouping-and-eager-loading

当然,当groupBy返回Illuminate\\Support\\Collection的实例时,您会收到错误groupBy 您需要做类似的事情

$messages = Auth::user()->Notifications()->orderBy('created_at', 'desc')->paginate(2);

$messages->setItems($messages->groupBy(function($date) {
            return $date->created_at->format('M d'); // grouping by day
        }));

这样,您可以在分页对象中设置新项目,这些新项目是数据库中的分组结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM