Laravel连接两个表不匹配具有相同名称的列

时间:2020-03-15 05:12:16

标签: laravel

我有2张桌子-

用户(id,Establishment_id,名称...)

机构(id,district_id,名称...)

我希望所有具有district_id = 1的用户。我没有在任何模型中使用雄辩的关系。

我尝试过

$users = User::join('establishments', 'establishments.id', '=', 'users.establishment_id')->where('district_id', '=', $admin_district_id)->where('is_active', '=', 1)->paginate(3);

但是它返回机构名称而不是用户名称。

2 个答案:

答案 0 :(得分:0)

这是因为name的列名不明确。

一种选择是为用户名明确指定别名,即用户名

$users = User::join('establishments', 'establishments.id', '=', 'users.establishment_id')
->select('users.name AS user_name', 'establishments.name AS establishment_name', 'users.*', 'establishments.*')
->where('district_id', '=', $admin_district_id)
->where('is_active', '=', 1)
->paginate(3);

users table name,您现在可以使用user_name

答案 1 :(得分:0)

我用-

解决了
$users = User::join('establishments', 'establishments.id', '=', 'users.establishment_id')->where('district_id', '=', $admin_district_id)->where('is_active', '=', 1)->select(array('users.*'))->paginate(3);