Да, создайте промежуточное ПО EnableGlobalScopeMiddleware
php artisan make:middleware EnableGlobalScopeMiddleware
и примените глобальную область действия к моделям в функции handle
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Database\Eloquent\Model;
class EnableGlobalScopeMiddleware
{
public function handle($request, Closure $next)
{
Model::addGlobalScope('foo', function (Builder $builder) {
$builder->where('foo', 'bar');
});
return $next($request);
}
}
Зарегистрируйте промежуточное ПО вApp\Http\Kernel
добавив его к защищенному $routeMiddleware
свойству массива
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'global' => \App\Http\Middleware\EnableGlobalScopeMiddleware::class, // <-- Here
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
];
и примените к нему определенные маршруты, например /admin
префиксная группа маршрутов
Route::middleware(['global'])->prefix('admin')->group(function () {
// Routes here
});
Надеждаэто помогает