Я хочу использовать политику Laravel для авторизации большого массива пользовательских разрешений с помощью Blade.
Мои полномочия соответствуют модели ActionPermission
, содержащей все разрешения приложений.
User
имеет имена разрешений, к которым он обращается через сводную точку
, используя:
public function permissions(){
return $this->belongsToMany('App\ActionPermission', 'users__action_permission');
}
Так что по сути я получаю коллекциюразрешений для пользователя и вызова $user->permissions()->pluck('module_name')->toArray();
Я получу имена разрешений в виде массива.
Есть ли способ вывести массив политик через блейд в одну строку?Таким образом, в моем макете я вставлю однострочную директиву blade-сервера?
В документах Laravel они используют имя функции в качестве директивы blade-сервера, например, в политике:
public function update(User $user, Post $post)
{
return $user->id === $post->user_id;
}
И в лезвии:
@can('update', $post)
<!-- The Current User Can Update The Post -->
@elsecan('create', App\Post::class)
<!-- The Current User Can Create New Post -->
@endcan
Выше не имеет значения, когда у вас есть большое количество разрешений.Что было бы лучше для выполнения большого массива разрешений?
Кстати, любой метод (не только загрузчик провайдера) приветствуется.