我有一个order_status_transaction
表,它是一个记录交易状态的日志表
例如,我试图编写一个雄辩的构建器,以获取所有当前状态为 5 的交易。
这是我最接近的
$transactions = $this->whereHas('statuses', function ($query) use ($statusId) {
$query->where('order_status_transaction.order_status_id', $statusId)->where();
});
但是它不会检查它是否是最新的。我不想获取集合并过滤集合,这可以纯粹在构建器中进行吗?
答案 0 :(得分:0)
这应该做
$transactions = OrderStatusTransaction::where('order_status_id', $statusId)->latest()->get();
假设OrderStatusTransaction
为模型名称。
如评论中所述,最新的是按最新的排序。
答案 1 :(得分:-1)
查询构建器有一个名为latest()
的方法,因此您将编写如下内容:
OrderStatusTransaction::where('order_status_id', $statusId)
->latest()
->get();
这将获取具有给定状态ID的所有记录,从最近的记录到最早的记录。
您可以在这里阅读有关此内容的信息:
https://laravel.com/docs/5.7/queries#ordering-grouping-limit-and-offset