如果我们有这样的事情:
用户
- 编号
- 姓名
作用
- 编号
- 姓名
购物
- 编号
- 姓名
角色用户
- 角色编号
- 用户编号
商店用户
- 店铺编号
- 用户编号
快速:商店---商店用户---用户---角色用户---角色
我们希望 SHOP 1 的所有 USER 都具有 ROLE admin。我们怎样才能做到这一点?
所有来自 SHOP 1 的用户:
$shop = Shop::find( $shopId );
$shop->users()->get();
像这样的东西会很好:
$shop = Shop::find( $shopId );
$shop->users()->roles->()->where( 'name', 'Admin' )->get();
最佳答案
假设您的人际关系按预期运作,这应该会让您得到想要的结果:
$shop = Shop::with(['users' => function ($q) {
$q->whereHas('roles', function ($q) {
$q->where('name', 'Admin');
});
}])->find($shopId);
它将选择 id = $shopId
的商店,并将所有 users
附加到它,具有 role
where roles .name = Admin
你得到这样的用户 $users = $shop->users
关于php - Laravel 多对多关系 - 检索模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41570093/