首页 > 解决方案 > Laravel连接两个表不匹配的同名列

问题描述

我有 2 张桌子 -

用户(id、institution_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);

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

标签: laravel

解决方案


这是因为列名name不明确。

一种选择是为用户名明确指定别名为 user_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


推荐阅读