gpt4 book ai didi

Laravel:根据嵌套关系的字段对查询结果进行排序

转载 作者:行者123 更新时间:2023-12-04 14:49:19 28 4
gpt4 key购买 nike

我有两个模型,其关系定义如下

顺序

public function owner()
{
return $this->belongsTo(User::class, 'owner_id');
}

用户

public function company(){
return $this->belongsTo(Company::class, 'company_id');
}

公司表有“标题”字段。我想要的是按公司名称对所有订单进行排序/排序。我尝试了不同的解决方案,但似乎没有任何效果。任何帮助或提示将不胜感激。

我最近尝试的解决方案是

$query = OrderModel::whereHas('owner', function($q) use ($request){
// $q->orderBy('owner');
$q->whereHas('company',function ($q2) use ($request){
$q2->orderBy('title',$request->get('orderByDirection') ?? 'asc');
});
});

但我在查询结果中没有得到用户和公司关系。对于“ASC”和“DESC”顺序,结果也保持不变。

最佳答案

您可以在添加 join 之后对查询进行排序,例如:

return Order::join('users', 'users.id', '=', 'owner_id')
->join('companies', 'companies.id', '=', 'users.company_id')
->orderBy('companies.title')
->select('orders.*')
->get();

关于Laravel:根据嵌套关系的字段对查询结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69313734/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com