如何加入 3 表 eloquent laravel 8
Posted
技术标签:
【中文标题】如何加入 3 表 eloquent laravel 8【英文标题】:How to join 3 table eloquent laravel 8 【发布时间】:2021-12-11 11:36:01 【问题描述】:我有 3 张桌子
用户
user_id
name_user
contacts
request_id
request_register
request_id
user_id
team_id
团队
team_id
name_team
我想获取注册到具有特定 ID 的团队的用户详细信息列表,例如:
id 为 1 的团队
id_user | name_user | contacts | team_id | name_team |
---|---|---|---|---|
1 | michael | 1234 | 1 | phoenix |
2 | john | 1232 | 1 | phoenix |
3 | cindy | 1222 | 1 | phoenix |
【问题讨论】:
在 User 模型和 requestRegister 模型中定义适当的关系,然后使用 User::with('request_register.team')->get(); 【参考方案1】:你可以使用Laravel提供的whereHas()方法,但是你必须指定使用该方法查询需要的关系,大概是这样的:
$teamId = //retrieve the team id...;
$users = User::whereHas('request_register', function() (Builder $query) use ($teamId)
$query->where('team_id', $teamId);
)->get();
这将自动在users
和request_register
之间建立连接,以获得您想要的。
【讨论】:
以上是关于如何加入 3 表 eloquent laravel 8的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent 从一个表中选择并在另一个表中有匹配项时加入第一行