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

Метод none

Метод none класса Gate проверяет, запрещены ли все переданные способности для текущего пользователя. Он возвращает true, если ни одна из указанных способностей не разрешена пользователю, и false, если хотя бы одна способность разрешена. Метод принимает массив названий способностей или отдельные названия в качестве аргументов. Это полезно для проверки, что пользователь не имеет ни одного из перечисленных прав.

Синтаксис

<?php Gate::none($abilities, $arguments); ?>

Параметры метода:

  • $abilities - массив названий способностей или строка с одним названием
  • $arguments - необязательный параметр, аргументы для проверки способностей

Пример

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

<?php use Illuminate\Support\Facades\Gate; use AppModelsUser; use AppModelsArticle; $user = User::find(1); $article = Article::find(1); $res = Gate::forUser($user)->none(['update-article', 'delete-article'], $article); echo $res ? 'All abilities are forbidden' : 'At least one ability is allowed'; ?>

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

"At least one ability is allowed"

Пример

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

<?php use Illuminate\Support\Facades\Gate; use AppModelsUser; $user = User::find(2); $abilities = ['create-post', 'update-post', 'delete-post']; if (Gate::forUser($user)->none($abilities)) { echo 'User cannot perform any of these actions'; } else { echo 'User can perform at least one action'; } ?>

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

"User cannot perform any of these actions"

Пример

Используем метод none в контроллере для проверки прав перед выполнением операции:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesGate; use AppModelsPost; class PostController extends Controller { public function index() { $post = Post::find(1); if (Gate::none(['edit-post', 'delete-post'], $post)) { return 'You do not have any permission to manage this post'; } return view('posts.manage', ['post' => $post]); } } ?>

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

"You do not have any permission to manage this post"

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

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