6

我有一个这样的查询:

$users = DB::table('users')->join('user_roles','users.role_id','=','user_roles.id')->get();

以及一个包含列id(users.id) 的表和另一个包含列iduser_id(user_roles.id & user_roles.user_id) 的表,

但问题是..返回的$user->iduser_roles.id而不是users.id列..我该如何解决这个问题,这样我得到的不是角色ID而是用户ID..

谢谢!

4

2 回答 2

16

找到了!

使用->select('users.*', 'user_roles.role_name')i 能够user_roles.id从返回的值中删除,从而消除冲突。

这是最终的查询:

$users = DB::table('users')->join('user_roles','users.role_id','=','user_roles.id')->select('users.*', 'user_roles.role_name')->get();
于 2013-08-12T00:55:22.047 回答
6

更好的方法是使用'as':

$users = DB::table('users')->join('user_roles','users.role_id','=','user_roles.id')->get(array('users.*', '**user_roles.id as user_roles_id**', 'user_roles.*'));
于 2015-05-19T23:44:36.130 回答