Для включения 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 будет автоматически отключен.