Laravel 4/5,由外国专栏订购
在Laravel 4/5中,如何根据通过关系连接到此表的字段对表结果进行排序 我的情况是: 我的Laravel 4/5,由外国专栏订购,laravel,eloquent,query-builder,Laravel,Eloquent,Query Builder,在Laravel 4/5中,如何根据通过关系连接到此表的字段对表结果进行排序 我的情况是: 我的用户只存储电子邮件和密码字段。但是我有另一个名为details的表,它存储名称,生日,等等 如何按详细信息.name获取用户表格结果排序 注意:由于用户是一个具有许多其他关系和许多项的中心表,我不能像Details::…那样进行反向搜索,我建议使用join。(模型应以单数形式命名;用户;详细信息) 如果多次使用此查询,可以将其保存在模型的作用域中 class User extends \Eloquen
用户
只存储电子邮件
和密码
字段。但是我有另一个名为details
的表,它存储名称
,生日
,等等
如何按详细信息.name
获取用户
表格结果排序
注意:由于用户是一个具有许多其他关系和许多项的中心表,我不能像
Details::…
那样进行反向搜索,我建议使用join。(模型应以单数形式命名;用户;详细信息)
如果多次使用此查询,可以将其保存在模型的作用域中
class User extends \Eloquent {
public function scopeUserDetails($query) {
return $query->join('details', 'users.id', '=', 'details.user_id')
}
}
然后从控制器调用查询
$users = User::userDetails()->orderBy('details.name', 'asc')->get();
您使用的是Eloquent吗?当前获取记录的请求是什么样子的?您必须
加入
详细信息表,没有其他方法。感谢您的回答,但我已经使用了这种方法,这是非常糟糕的,因为在排序id等同名列时可能会产生冲突。我正在搜索一种更“ORM”的方法。。
$users = User::userDetails()->orderBy('details.name', 'asc')->get();