В настоящее время моих таблицы БД определяются следующим образом: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 для этого?
EDIT:
В основном я просто спрашиваю, что было бы лучшим способом цепи 2 многие ко многим отношений.