laravel - 按父模型订购 Eloquent 查询
问题描述
在 Laravel 中,我遇到了如下图中的情况。我想获取所有用户的订单,但按date
事件对结果进行排序。
我试过了:
$orders = auth()->user()->orders()->with(['tickets', 'event' => function($query) {
$query->orderBy('date', 'desc');
}])->get();
但顺序似乎完全是随机的,与事件的日期没有任何关系。
不过,感觉这一定是可能的?
解决方案
Reinink 写了一篇关于这种查询的精彩文章
您的解决方案将按日期订购加载的事件,但您需要按事件日期订购。所以这里是我的建议。
$orders = auth()->user()->orders()->orderByDesc(
Event::select('date')->whereColumn('orders.event_id', 'events.id')
)->with(['tickets', 'event'])->get();
推荐阅读
- python - 如何从flask socketio中的线程发射到某个套接字?
- blockchain - 对solidity代码运行测试时出错
- mysql - MySQL - 在子查询中获取多行
- javascript - 什么是 Chrome 扩展的首选实现,它可以捕获并读取一个特定网页上新添加的列表值?
- python - 太空入侵者杀死多个敌人
- php - Stripe 在 PHP 中创建多个阶段
- html - SVG/Inkscape - “无法加载请求的文件”
- python - 为什么输出最后一直返回“无”值?
- c# - 如何添加到自定义列表视图用户控制编辑项目列组等任务?
- python - 向 nifti 文件添加维度