如果我们有这样的内容:
用户
- id
- name(名称)
角色
- id
- name(名称)
商店
- id
- name(名称)
角色用户
- 角色id
- 用户id
商店用户
- 商店id
- 用户id
速查:商店---商店用户---用户---角色用户---角色
我们想要从商店1中找到所有具有“管理员”角色的用户。该怎么做呢?
从商店1中找到所有用户:
$shop = Shop::find( $shopId );
$shop->users()->get();
类似这样的内容会很好:
$shop = Shop::find( $shopId );
$shop->users()->roles->()->where( 'name', 'Admin' )->get();
whereHas()
中将roles
改为shops
了。现已修复,请确保正确定义了roles
和shops
的关系。 - Alexey Mezenin