在Laravel 4/5中,如何在基于关系连接到该表的字段中排序表结果?Laravel 4/5,国外订单
我的情况:
我有users
,只有存储e-mail
和password
领域。但是我有一个叫details
另一个表存储的name
,birthday
,等...
我怎样才能获得通过details.name
的users
表结果排序?
P.S:由于用户是有其他国家的关系,并有许多项目的中央台,我不能只是做一个反向搜索像Details::...
在Laravel 4/5中,如何在基于关系连接到该表的字段中排序表结果?Laravel 4/5,国外订单
我的情况:
我有users
,只有存储e-mail
和password
领域。但是我有一个叫details
另一个表存储的name
,birthday
,等...
我怎样才能获得通过details.name
的users
表结果排序?
P.S:由于用户是有其他国家的关系,并有许多项目的中央台,我不能只是做一个反向搜索像Details::...
我会建议使用加入。 (型号应为单数形式命名;用户;详细信息)
$users = User::join('details', 'users.id', '=', 'details.user_id') //'details' and 'users' is the table name; not the model name
->orderBy('details.name', 'asc')
->get();
如果您使用此查询多次,你可以把它保存在一个示范范围。
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();
感谢您的答案,但我已经使用这种方式,这是非常糟糕的,因为可以在订购具有相同名称,如id等列时发生冲突。我正在寻找更多的“ORM”方式.. – insign 2014-11-26 02:17:27
您是否在使用Eloquent?当前获取记录的请求是什么样的? – 2014-11-23 17:29:25
你必须“加入”细节表,没有别的办法。 – 2014-11-23 19:09:00