РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить