繁体   English   中英

Laravel Eloquent,orderBy有关系

[英]Laravel Eloquent, orderBy with relationship

我有一个属于ClientProject表我想要实现的是按客户名称对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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM