2016-05-24 6 views
0

:私のコントローラで

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); 
} 

Kernel.php

protected $routeMiddleware = array( 
    ... 
    'federation' => Middleware\FederationMiddleware::class, 

では、私が持っている:

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

基本的に必要なのは、連合の所有者が自分の情報を編集できるようにすることです。そのため、URLを解析して、URLが含まれている場合federations/{federationID} and federationID == user-> federation() - > id、アクセス許可

+0

dd($ request-> request)の代わりにdd($ request-> getMethod())を使ってデバッグしようとすると、POSTリクエストではないので、nullになります – Brett

+0

これはGETですが、私にURL Paramsを渡しますか? –

+0

- >クエリはGETパラメータを与えるでしょう、私はかなり確信しています。 symfonyリクエストクラスを使用しているので、 – Brett

答えて

0

さらに高度なものが必要な場合を除き、現在のURLから解析して確認することができます。

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

これはsitename.xyz/federation/[somedigits]/editと一致し、他のアドレスはありません。

+0

私は正規表現でbaaaaadです。しかしこの場合、urlが/ federations/{id}/edit /であるかどうかを正確に比較する必要があります。なぜなら、federationIdを含む可能性のあるURLがたくさんあるから –

+0

です。私の編集された答えを見てください、私はそれがあなたが欲しい理由だと思いますか? –

+0

それは私の質問に答えることはできませんが、それは私の問題を解決するようです! tx –

関連する問題