$request — >request равен null в laravel 5

Я пытаюсь определить промежуточное ПО FederationMiddleware:

 public function handle($request, Closure $next)
{
    dd($request->request); // prints null
    if (Auth::check()) {
        $userLogged = Auth::user();
        if (!$userLogged->isSuperAdmin()) {
            throw new UnauthorizedException;
        }
    }
    return $next($request);
}

в ядре.РНР

protected $routeMiddleware = array( 
     ...
    'federation' => MiddlewareFederationMiddleware::class,

В моем контроллере у меня есть:

public function __construct()
{
    $this->middleware('federation'); 
}

Что мне нужно в основном, это позволить владельцу Федерации редактировать свою собственную информацию, поэтому мне нужно разобрать URL, чтобы знать, что если URL содержит Федерации / {federationID} и federationID == user — >federation () — > > id, предоставьте доступ

1 ответ

  1. Если вам не нужно что-то более продвинутое, вы можете просто проанализировать его из текущего url и сделать проверку.

    $path = $request->path();
    if (preg_match('@^federation/(\d+)/edit$@', $path, $match)) {
        $federationId = $match[1];
        // compare with the user's federation id here
    }
    

    Это не будет совпадать sitename.xyz/federation/[somedigits]/editи никаких других адресов.