Я создаю промежуточное ПО для разрешений.
Разрешения основаны на типах действий пользователя и / или типе модуля / элемента (т. Е. Кнопка удаления).
Модель ActionPermission
(таблица action_permission
) имеет все типы разрешений, в то время как таблица users__action_permission
является стержнем для User
& ActionPermission
со всеми пользователями и их идентификаторами разрешений.
User
имеет метод permissions()
, который получает все разрешения для пользователя
public function permissions()
{
return $this->hasMany('App\ActionPermission');
}
checkUserPermissions
(промежуточное ПО)
public function handle($request, Closure $next)
{
$response = $next($request);
$userId = Auth::id();
$userPermissions = User::findOrFail($userId)->permissions()->get();
dd($userPermissions);
}
Поскольку permissions()
ищет ключ user_id
, а модель ActionPermission
(таблица action_permission
) не имеет соответствующего ключа user_id
, мне нужна таблица users__action_permission
, в которой он хранится user_id
.
Мой вопрос: есть ли у Laravel способ для User::permissions()
доступа к таблице users__action_permission
, или мне нужно построить модель для этого?