2017-08-03 16 views

答えて

0

なぜこの方法を書いたのですか?ハンドルメソッドにこのコードを書くことができます。

public function handle($request, Closure $next) 
    { 
     if ($request->session()->has('request_failed')) { 
      return $next($request); 
     } else { 
      echo 'forbidden'; 
     } 
    } 

ともあなたが app/Http/Kernel.phpファイル内$routeMiddleware配列にこのミドルウェアを登録する必要があります。 は、この行を追加します。 'CheckSession' => CheckSession::class,

+0

btw私はすでにこのミドルウェアを登録しています – tejoprabowo

+0

daloamミドルウェアですか? – tejoprabowo

+0

ミドルウェアには複数の関数を書くことができますが、handleメソッドでそれらの関数を呼び出す必要があります。登録済みのミドルウェア名を使用する必要があります –

0
public function handle($request, Closure $next) 
{ 
    $this->CheckSessionPageReuestTokenFailed($request, $next); 

    return $next($request); 
} 
+0

https://laravel.com/docs/5.4/middleware詳細をお知りにlaravelのドキュメントを読んで、私はルート上に直接置くことができますか? – tejoprabowo

+0

はい。クラス 'CheckSession'を使用します。 https://laravel.com/docs/5.4/middleware#assigning-middleware-to-routes – Jed

0

あなたがhandle()メソッド内で使用することができます。

public function handle($request, Closure $next) 
{ 
    $this->CheckSessionPageReuestTokenFailed($request, $next); 
    return $next($request); 
} 
+0

もう1つの方法があるとします。より具体的には、方法2を使用したいと思います。メソッドを呼び出すにはどうすればよいですか2それに? 例: 公開関数ハンドル($ request、Closure $ next) { $ this-> CheckSessionPageReuestTokenFailed($ request、$ next); $ this-> CheckSessionPageReuestTokenFailed2($ request、$ next); return $ next($ request); } どうすれば$ this-> CheckSessionPageReuestTokenFailed2($ request、$ next)というメソッドを呼び出すことができますか?オンルートまたはコントローラ – tejoprabowo

+0

例と同じ方法です。最初のメソッドがtrueまたはfalseを返してメソッドを呼び出すかどうかを確認することもできます。2 – lstonon

+0

ルートファイルでミドルウェアを追加する必要があります。このような: ルート::グループ([ 'プレフィックス' => '例'、 'ミドルウェア' => 'checksession']、関数(){ \t})。 と 'Http/Kernel.php'に' 'checksession '=> \ App \ Http \ Middleware \ CheckSession :: class'を追加してください。 – lstonon

関連する問題