[英]Laravel Eloquent, orderBy with relationship
我有一个属于Client
的Project
表我想要实现的是按客户名称对Project
表进行排序,如何将客户的名称称为Project
查询的orderBy
?
$projects = Project::where('company_id', Auth::user()->company_id)
->search(trim($this->search))
->orderBy($this->column, $this->order)
->paginate($this->size);
你可以用一个子查询来做到这一点:
$projects = Project::where('company_id', Auth::user()->company_id)
->search(trim($this->search))
->orderBy(
Client::select('name')
->whereColumn('id', 'projects.client_id')
->limit(1)
)
->paginate($this->size);
如果您还需要orderBy
字段是有条件的,您可以将其包装在when()
中。
您可以在此处阅读有关 Eloquent 子查询的更多信息: https://laravel-news.com/eloquent-subquery-enhancements
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.