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

在Laravel 4/5中,如何根据通过关系连接到此表的字段对表结果进行排序

我的情况是:

我的
用户
只存储
电子邮件
密码
字段。但是我有另一个名为
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();