2017-08-01 13 views
-5

ルートにミドルウェアを追加する場合、訪問者はミドルウェアを渡す必要があります。
私は、ユーザが理論的に(彼の現在の要求に対して必要ではなかった)任意のミドルウェアを渡すかどうかを確認することができるかどうかを知りたいと思う。Authに特定のミドルウェアがあるかどうかをチェック

Ie.

I持っている3ミドルウェア123

マイルートが有効ミドルウェア12があり、ユーザーはミドルウェア3を通過する場合、私がチェックするだろうか?

+0

詳細を追加すると、ルートを確認する方法には特定のミドルウェアがありますか? –

+0

私はそれを非常に明確にしました。訪問者がミドルウェアをビュー内に持っているかどうか確認したい。私は道について何も言及しなかった? –

+1

ビュー内にミドルウェアなどはありません。 –

答えて

-2

相続人はあなたが何ができるか、あなたのミドルウェアは、もともと、ユーザーが、それは以下のコードを使用して渡すかどうかを確認することができるはずその後

public function passesTest() { 
    return true; // check something here 
} 

の下のようにチェックします今まで何をチェックするための関数を宣言する可能性がありますミドルウェアとビュー内で関数にアクセスできます。

if (Auth::passesTest()) { 
    // do something 
} 

このように、変更したい場合は、1つの場所で変更するだけです。

+0

Laravelが更新をプッシュし、あなたが 'composer update'を実行するとどうなりますか?コードは失われます。 –

+0

@DeesOomensはカスタムAuthクラスを使用していない場合は表示されません。 – distributi0n

4

他のユーザーがコメントであなたに説明しようとしたように、ミドルウェアはこれに適したツールではありません。任意のビューに到達する前に、ミドルウェアを使用して任意の要求をチェックします。

custom guardを使用できます。これにより、@ distribut0nで提案されているようにauth checkingを使用できるようになります。

このカスタム認証ガードの中にあなたが必要な情報にアクセスするために、そしてもちろん、あなたが、さらに情報のため Auth::user()を使用することができ Requestファサードを使用することができ、これらの二つの項目の組み合わせは、あなたに、ほぼすべての可能なリクエストをチェックする機能を与える必要があります。

コードが重複しないようにするには、カスタムガードのロジックを宣言してミドルウェアをチェックインする方がよい場合があります。

関連する問題