Как проверить авторизацию двух пользователей в блейде Laravel по тегу @can

У меня есть 6 типов пользователей в моем приложении. Для одного представления я хочу проверить, вошел ли в систему какой-либо из заданных двух типов пользователей. Если да, то показать этот элемент.

Это работает

@can('admin-controller')
    <div class = "custom-submit-button-group">
        <a href = "/contact/viewall">View All Messages</a>
    </div>
@endcan

Но я хочу, чтобы это работало. Я хочу показать div этим двум типам пользователей.

@can('admin-controller' || 'general-controller')
    <div class = "custom-submit-button-group">
        <a href = "/contact/viewall">View All Messages</a>
    </div>
@endcan

Но ни один из них не может видеть этот пункт.

Я могу использовать Auth::check(), но я хотел использовать только @can

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
469
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать Gate Facade следующим образом:

@if (Gate::check('update-post') || Gate::check('update-post2'))

@endif

И вы можете определить свои разрешения в App\Providers\AuthServiceProvider следующим образом:

public function boot()
{
    $this->registerPolicies();

    Gate::define('update-post', function ($user, $post) {
        return $user->id == $post->user_id;
    });
}

ИЛИ

@if ($user->can('perm1') || $user->can('perm2'))
    // do something
@endif

Я знаю, что это сработает, и я пробовал их. У меня был вопрос, как проверить два авторизационных шлюза методом "can" в файле просмотра?

S K R 08.04.2019 09:31
Ответ принят как подходящий

Попробуйте @canany.


<table>
  <tr>
    <th>...</th>
    @canany(['edit_post', 'delete_post'])
    <th>Actions</th>
    @endcanany
  </tr>
  <tr>
    <td>...</td>
    @canany(['edit_post', 'delete_post'])
    <td>
      @can('edit_post')
      <button>Edit</button>
      @endcan
      @can('delete_post')
      <button>Delete</button>
      @endcan
    </td>
    @endcanany
  </tr>
</table>

Спасибо, @Cloud Soh Hun Fu. Этот ответ очень помог

S K R 11.04.2019 08:18

Другие вопросы по теме