0
目前我的数据库表的定义如下:Laravel - 检查记录存在
site_roles - 包含不同的角色
site_user_roles - 将用户链接到许多角色
site_permission_modules - 包含不同的访问级别[例如。查看管理控制,禁止用户]
site_role_permissions - 链接的权限模块角色
我在laravel模型正确定义查询这些多对多的关系。在代码中,我想检查用户是否拥有与他链接的特定权限模块。
为了更好地理解,这里是我的模型,以及:
用户
public function SiteRoles()
{
return $this->belongsToMany('App\SiteRole', 'site_user_roles', 'users_id', 'site_roles_id');
}
SiteRole
public function Users()
{
return $this->belongsToMany('App\User', 'site_user_roles', 'site_roles_id', 'user_id');
}
public function SitePermissionModules()
{
return $this->belongsToMany('App\SitePermissionModule', 'site_role_permissions', 'site_roles_id', 'site_permission_modules_id');
}
SitePermissionModule
public function SiteRoles()
{
return $this->belongsToMany('App\SiteRole', 'site_role_permissions', 'site_permission_modules_id', 'site_roles_id');
}
这是我目前所做的:
Auth::User()->SiteRoles()->with('SitePermissionModules')->get()
的有()的关键字检索与每个角色相关联的权限的嵌套数组。
我需要检查用户是否有一个特定的权限模块链接到他。
什么是最好的laravel方式来做到这一点?
编辑:
基本上我只是问什么会是链2多对多关系的最佳途径。