如何将Laravel集合groupBy与查询分页一起使用?

如何将Laravel集合groupBy与查询分页一起使用?,laravel,eloquent,laravel-5.6,laravel-collection,laravel-pagination,Laravel,Eloquent,Laravel 5.6,Laravel Collection,Laravel Pagination,我喜欢使用Laravel的groupBy函数 但是,我不能将它与paginate(x)函数一起使用,因为它返回的结果数量有限。SQL查询的Groupby和Laravel集合的Groupby完全不同。如果我在查询中使用groupby,它不会给出我想要的。例如,我只想打字,我得到了我想要的一切 $notifications=$notifications->groupBy('order_id'); 例如,这是我的查询 $notifications=DB::table('sent_notificat

我喜欢使用Laravel的groupBy函数

但是,我不能将它与paginate(x)函数一起使用,因为它返回的结果数量有限。SQL查询的Groupby和Laravel集合的Groupby完全不同。如果我在查询中使用groupby,它不会给出我想要的。例如,我只想打字,我得到了我想要的一切

$notifications=$notifications->groupBy('order_id');
例如,这是我的查询

$notifications=DB::table('sent_notifications as a')
->join('sent_notification_results as b'、'a.sent_notification_result_id'、'='、'b.sent_notification_result_id')
->join('orders as c','c.order_id','=','a.order_id')
->join('sellers as d'、'c.seller\u id'、'='、'd.seller\u id')
->加入(‘公司名称为e’、‘d.公司id’、‘=’、‘e.公司id’)
->join('notification_templates as f'、'f.notification_template_id'、'='、'a.notification_template_id')
->join('g'通知类型','g.通知类型'id','=','f.通知类型'id')
->join('h'默认通知\模板'、'h.default通知\模板\ id'、'='、'f.default通知\模板\ id')
->其中('e.company\u id',$company\u id)
->选择(“*”)
->orderBy('a.created_at','DESC')
->分页(20);
$pagination_links=$notifications->links();

如何将Collection的groupby方法与分页一起使用?

我在一个项目中处理过类似的问题,并提出了此解决方案

public function index(Request $request)
{
    $posts = Post::all()
        ->paginate($request->get('per_page', 25));

    $grouped_by_date = $posts->mapToGroups(function ($post) {
        return [$post->published_date => $post];
    });
    $posts_by_date = $posts->setCollection($grouped_by_date);

    return view('posts.index', compact('posts_by_date'));
}

您期望的结果到底是什么?能否添加要生成的查询?