Laravel口才从日志表的最新状态

时间:2018-11-21 21:41:26

标签: php laravel laravel-5 laravel-5.6

我有一个order_status_transaction表,它是一个记录交易状态的日志表

enter image description here

例如,我试图编写一个雄辩的构建器,以获取所有当前状态为 5 的交易。

这是我最接近的

$transactions = $this->whereHas('statuses', function ($query) use ($statusId) {
    $query->where('order_status_transaction.order_status_id', $statusId)->where();
});

但是它不会检查它是否是最新的。我不想获取集合并过滤集合,这可以纯粹在构建器中进行吗?

2 个答案:

答案 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