Laravel 关系 orderBy
Laravel relationships orderBy
我在模型 OrderProduct 中有一个简单的 belongsToMany 关系:
public function statuses()
{
return $this->belongsToMany(OrderProductStatusName::class, 'order_product_statuses')
->withPivot('created_at');
}
我想要一个产品的所有状态,但我希望它们在 created_at 上按枢轴 table 排序。
我试图这样做:
$orderProduct = OrderProduct::find($productId);
$statuses = $orderProduct->statuses->orderBy('pivot_created_at', 'DESC');
但是我有错误 500,方法 orderBy 不存在。我怎样才能做到这一点?
laravel中的关系可以用作属性或方法。如果关系用作 属性 那么 returns 一个集合。如果用作方法,则 returns 查询构建器对象,您可以链接方法,如 orderBy。所以在这种情况下你应该使用下面的代码:
$statuses = $orderProduct->statuses()->orderBy('pivot_created_at', 'DESC')->get();
我在模型 OrderProduct 中有一个简单的 belongsToMany 关系:
public function statuses()
{
return $this->belongsToMany(OrderProductStatusName::class, 'order_product_statuses')
->withPivot('created_at');
}
我想要一个产品的所有状态,但我希望它们在 created_at 上按枢轴 table 排序。 我试图这样做:
$orderProduct = OrderProduct::find($productId);
$statuses = $orderProduct->statuses->orderBy('pivot_created_at', 'DESC');
但是我有错误 500,方法 orderBy 不存在。我怎样才能做到这一点?
laravel中的关系可以用作属性或方法。如果关系用作 属性 那么 returns 一个集合。如果用作方法,则 returns 查询构建器对象,您可以链接方法,如 orderBy。所以在这种情况下你应该使用下面的代码:
$statuses = $orderProduct->statuses()->orderBy('pivot_created_at', 'DESC')->get();