Для включения Debugbar только для администраторов в Laravel, вам понадобится несколько шагов:
- Установите пакет Debugbar, выполнив команду
composer require barryvdh/laravel-debugbar
.
- После установки откройте файл
config/app.php
и добавьте следующую строку в разделproviders
:
BarryvdhDebugbarServiceProvider::class,
- Затем откройте файл
app/Providers/AppServiceProvider.php
и импортируйте класс Debugbar, добавив следующую строку в верхней части файла:
use BarryvdhDebugbarFacade as Debugbar;
- Внутри метода
register
класса AppServiceProvider добавьте следующий код:
if ($this->app->isLocal() || $this->app->runningUnitTests()) { Debugbar::enable(); }
- Создайте 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); } }
- Зарегистрируйте middleware в
app/Http/Kernel.php
, добавив следующую строку в массив$routeMiddleware
:
'admin' => AppHttpMiddlewareAdminMiddleware::class,
- Далее, укажите, что Debugbar должен использовать Middleware
admin
. Откройте файлconfig/debugbar.php
и найдите строчку'middleware' => null,
. Измените ее на:
'middleware' => 'admin',
- Теперь, чтобы пользоваться Debugbar, вам нужно добавить метод
isAdmin()
в модель пользователя (обычно это модельAppUser
). Сделайте это, добавив следующий код в эту модель:
public function isAdmin() { return $this->is_admin; }
После выполнения этих шагов, Debugbar будет включен только для администраторов вашего приложения. При обращении любого пользователя, не являющегося администратором, Debugbar будет автоматически отключен.