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

Метод cannot

Метод cannot класса User применяется к экземпляру модели пользователя и позволяет проверить, запрещено ли ему выполнение определённого действия. Первым параметром передаётся имя способности (ability), вторым - модель или массив моделей, над которыми выполняется действие. Метод возвращает bool: true, если действие запрещено, и false, если разрешено. Данный метод является полной противоположностью метода can.

Синтаксис

<?php $res = $user->cannot($ability, $arguments); ?>

Пример

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

<?php use AppModelsUser; use AppModelsArticle; $user = User::find(1); $article = Article::find(1); if ($user->cannot('update', $article)) { echo "You cannot update this article."; } else { echo "You can update this article."; } ?>

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

"You cannot update this article."

Пример

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

<?php use AppModelsArticle; $article = Article::find(2); if (auth()->user()->cannot('delete', $article)) { echo "Deletion is forbidden."; } else { echo "Deletion is allowed."; } ?>

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

"Deletion is forbidden."

Пример

Давайте проверим запрет на создание модели, передавая в качестве аргумента только имя класса:

<?php use AppModelsUser; use AppModelsArticle; $user = User::find(1); if ($user->cannot('create', Article::class)) { echo "Creation is not allowed."; } else { echo "Creation is allowed."; } ?>

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

"Creation is not allowed."

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

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