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

Метод check

Метод check класса Gate применяется для проверки прав доступа пользователя. Он принимает первым параметром имя действия, которое нужно проверить, а вторым - необязательный аргумент с данными для проверки (например, модель). Метод возвращает true, если пользователь имеет право на действие, и false в противном случае.

Синтаксис

<?php use Illuminate\Support\Facades\Gate; Gate::check($action, $arguments); ?>

Пример

Давайте проверим, может ли текущий пользователь редактировать статью:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Gate; use App\Models\Article; class ArticleController extends Controller { public function update($id) { $article = Article::findOrFail($id); if (Gate::check('update-article', $article)) { echo "User can update article"; } else { echo "User cannot update article"; } } } ?>

Результат выполнения кода:

"User can update article"

Пример

Давайте проверим несколько прав пользователя с помощью метода any:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Gate; use App\Models\Article; class UserController extends Controller { public function dashboard() { $article = Article::findOrFail(1); $res = Gate::any(['update-article', 'delete-article'], $article); if ($res) { echo "User can update or delete article"; } else { echo "User cannot update or delete article"; } } } ?>

Результат выполнения кода:

"User can update or delete article"

Пример

Проверим, запрещено ли пользователю действие с помощью метода denies:

<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\Gate; use App\Models\Post; class PostController extends Controller { public function delete($id) { $post = Post::findOrFail($id); if (Gate::denies('delete-post', $post)) { echo "User cannot delete post"; } else { echo "User can delete post"; } } } ?>

Результат выполнения кода:

"User cannot delete post"

Смотрите также

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