Laravel как включить debugbar только для админов?

Для включения Debugbar только для администраторов в Laravel, вам понадобится несколько шагов:

1. Установите пакет Debugbar, выполнив команду composer require barryvdh/laravel-debugbar.

2. После установки откройте файл config/app.php и добавьте следующую строку в раздел providers:

   BarryvdhDebugbarServiceProvider::class,

3. Затем откройте файл app/Providers/AppServiceProvider.php и импортируйте класс Debugbar, добавив следующую строку в верхней части файла:

   use BarryvdhDebugbarFacade as Debugbar;

4. Внутри метода register класса AppServiceProvider добавьте следующий код:

   if ($this->app->isLocal() || $this->app->runningUnitTests()) {
       Debugbar::enable();
   }

5. Создайте middleware, который будет проверять, является ли текущий пользователь администратором. Для этого выполните команду php artisan make:middleware AdminMiddleware. Откройте только что созданный файл app/Http/Middleware/AdminMiddleware.php и внесите следующие изменения:

   namespace AppHttpMiddleware;
   
   use Closure;
   use Debugbar;
   
   class AdminMiddleware
   {
       public function handle($request, Closure $next)
       {
           if ($request->user() && $request->user()->isAdmin()) {
               Debugbar::enable();
           } else {
               Debugbar::disable();
           }
   
           return $next($request);
       }
   }

6. Зарегистрируйте middleware в app/Http/Kernel.php, добавив следующую строку в массив $routeMiddleware:

   'admin' => AppHttpMiddlewareAdminMiddleware::class,

7. Далее, укажите, что Debugbar должен использовать Middleware admin. Откройте файл config/debugbar.php и найдите строчку 'middleware' => null,. Измените ее на:

   'middleware' => 'admin',

8. Теперь, чтобы пользоваться Debugbar, вам нужно добавить метод isAdmin() в модель пользователя (обычно это модель AppUser). Сделайте это, добавив следующий код в эту модель:

   public function isAdmin()
   {
       return $this->is_admin;
   }

После выполнения этих шагов, Debugbar будет включен только для администраторов вашего приложения. При обращении любого пользователя, не являющегося администратором, Debugbar будет автоматически отключен.