我有这样的查询:
$users = DB::table('users')->join('user_roles','users.role_id','=','user_roles.id')->get();
和一个包含列id
(users.id)的表和另一个包含列id
和user_id
的表(user_roles.id& user_roles.user_id),
但问题是.. $user->id
上返回的内容是user_roles.id
而不是users.id
列..我如何解决这个问题,以便我得到的不是角色ID,而不是用户ID ..
谢谢!
答案 0 :(得分:15)
发现它!
使用->select('users.*', 'user_roles.role_name')
我能够从返回的值中删除user_roles.id
,从而消除冲突。
以下是最终查询:
$users = DB::table('users')->join('user_roles','users.role_id','=','user_roles.id')->select('users.*', 'user_roles.role_name')->get();
答案 1 :(得分: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.*'));