РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplrAuGtAl 14 of 53 menu

Проверка разрешения в контроллере в Laravel

После Gate::define правило можно проверить в контроллере. Gate::allows вернёт true, если можно. Gate::denies - true, если нельзя:

<?php use Illuminate\Support\Facades\Gate; public function edit(Post $post) { if (Gate::denies('update-post', $post)) { abort(403); } return view('posts.edit', ['post' => $post]); } ?>

Вторым аргументом передаём тот же пост, что ожидает правило. abort(403) - ответ «запрещено»: пользователь вошёл, но к этому посту доступа нет.

Тот же смысл через allows:

<?php if (! Gate::allows('update-post', $post)) { abort(403); } ?>

В действии edit запретите доступ через Gate::denies и abort(403).

В действии удаления проверьте правило delete-post через Gate::allows.

Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить