繁体   English   中英

Laravel Eloquent OrderBy 与模型 Laravel 上的属于

[英]Laravel Eloquent OrderBy with a belongsTo on model Laravel

无论如何,在 Laravel 中动态 OrderBy 是一个所属的对象吗? 或者这只能在 join 上工作? 我想尽可能保持干净,这就是我使用belongsTo的原因。

这是我的查询,我遇到的问题是我不知道如何查询关系表。

$users = User::where('company_id', Auth::user()->company_id)
->search(trim($this->search))
->orderBy($this->column,$this->order)
->paginate($this->size);

我的 $columns 变量

$columns = collect(['username'=>'Username',
                            'email'=>'Email'
                            ]);

我想将companies表中的namecodeid添加到$columns变量中的选项中。

当我尝试按company.name订购时,这给了我一个column not found的错误在此处输入图片说明

这就是我在前端显示它的方式,因为我在belongsTo中有belongsTo

<td>{{$user->company->id}}</td>
<td>{{$user->company->name}}</td>
<td>{{$user->company->code}}</td>
<td>{{$user->username}}</td>
<td>{{$user->email}}</td>

我想你可以使用连接,也许试试

$users = User::where('company_id', Auth::user()->company_id)
    ->leftJoin('company', 'company.id', '=', 'users.company_id')
    ->search(trim($this->search))
    ->orderBy($this->column,$this->order)
    ->paginate($this->size);

现在您在查询中有 company.name 来订购。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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