Laravel的关系属于ToMany

时间:2017-08-23 08:57:26

标签: php laravel relationship

我想获取所有订单并将其与状态相关联,但我只想要每个订单的最后状态。我试图这样做,但我只得到第一个订单的状态,其余的没有。我该如何解决?

static function actualKioskOrders()
{
    $orders = Order::query();

    return $orders->with([
        'statuses' => function ($query) {
            $query->orderBy('created_at', 'desc')->first();
        }
    ]);
}

2 个答案:

答案 0 :(得分:3)

在订购模型中添加此方法,我建议对模型类进行查询。

public function status(){
return $this-> belongsToMany(Status::class);
}

public function latestStatus() 

   return $this->status()->latest()->first();
}

答案 1 :(得分:0)

我相信更简单的方法就是

$orders = Order::with('status')->orderBy('created_at', 'desc');

然后,如果您dd($orders);,您将拥有所有相应状态的订单。

相关问题