Таблица администратора вместо таблицы пользователей в spatie / laravel-permission

Я создал AdminMiddleware, и я написал код, упомянутый ниже, но Auth :: user не будет работать, потому что я хочу использовать таблицу администратора вместо таблицы пользователей.

public function handle($request, Closure $next)
{
    $Admin = \App\Admin::all()->count();
    if (!($Admin == 1)) {
        if (!Auth::user()->hasPermissionTo('Administer roles & permissions')) //If user does //not have this permission
        {
            abort('401');
        }
    }

    return $next($request);
}
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
832
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам необходимо изменить класс модели App\User на класс модели App\Admin (вам необходимо его создать).

Редактировать файл config/auth.php, ключ prowiders.users.model установить на App\Admin

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

Sagar Bhagdev 09.03.2018 14:35

Это всего лишь «переименование» таблицы / модели User в таблицу / модель Admin, поэтому я думаю, что вы можете делать все, что можете, в стандартном подходе (таблица / модель пользователя).

Kamil Kiełczewski 09.03.2018 14:38

если я создам другого провайдера, такого как provider.admin, чем я могу получить доступ в приведенном ниже фрагменте. Auth: :( что здесь идет)

Sagar Bhagdev 09.03.2018 14:42
Auth::user() вернет объект модели Admin. Таким образом, он будет работать без каких-либо изменений (мы не меняем методы аутентификации)
Kamil Kiełczewski 09.03.2018 15:02

Ничего страшного, я понял, но мне нужен Auth::user() для пользовательской таблицы или авторизации, связанной с пользователем, поэтому я не хочу это менять. вот почему я спросил вас, создам ли я нового провайдера, чем как мне получить к нему доступ?

Sagar Bhagdev 09.03.2018 15:10

В своем вопросе вы пишете i want to use Admin table instead of user table - поэтому я вам на это отвечу. Если вы хотите аутентификацию с использованием многопользовательских таблиц, это сложнее, насколько я знаю - может быть, это поможет вам: scotch.io/@sukelali/… или попробуйте найти какую-нибудь библиотеку laravel для этого

Kamil Kiełczewski 09.03.2018 15:30

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