0

フォーラムですでに読んだこの行を案内してくれる人もいますが、ロジックをクリアしていません

 array('before' => 'auth', 'do' => function()
4

5 に答える 5

1

特定のアクションを実行する前に、ユーザーがログインしているかどうかを確認したいとします。これは、フィルターと呼ばれるものによって実行されます。「前」フィルターは、アクションを実行する前にフィルターを実行することを意味します。

フィルタの詳細については、このリンクを確認してください

例:

Route::get('home', array('before' => 'auth', 'do' => function()
{
    // your action here
}));


Route::filter('auth',function(){
     if(Auth::guest())
         return Redirect::to('login');

});
于 2013-02-06T22:48:28.603 に答える
0

このリンクは同じことを説明しています。わかりやすい意味は、現在の状態が「認証前」の場合、機能を実行することです。

投稿しようとしたときに、ログインしていない場合は、function()ログイン目的を実行する場所にリダイレクトされます。authこれがイベントで、functionイベントハンドラーです

于 2013-02-06T08:29:46.127 に答える
0

これは、「コールバックの実行」でアクションを実行する前に、認証フィルターを実行する必要があることを意味します。フィルタが応答を返す場合(CodeHappyの例のように)、doコールバックは実行されません。

于 2013-02-06T08:50:01.677 に答える
0

これを段階的に進めましょう、

array('before' => 'auth', 'do' => function()

配列へのパラメータ、

これはフィルターを指します。フィルタは、リクエストが処理される前に実行される関数です。

上記の場合、配列パラメーターのdo部分は、現在のリクエストで実行される関数を指します。ただし、その関数が実行できるようになる前に、認証フィルターが実行されます。

beforeパラメーターを使用して実行する複数のフィルターを指定することもできます。

for example: 'before' => array('csrf', 'auth', 'mycustomfilter')
于 2014-04-26T19:43:42.630 に答える
0

「auth」フィルターは、関数にアクセスする前にアプリケーションでユーザーを認証するために使用されます。

考えてみましょう、routes.phpに次のコードがあります

  Route::get('index', array('before' => 'auth', 'do' => function()
  {
       // application logic goes here
  }));

したがって、以下のようにfilters.phpファイルで特定の認証フィルターを使用する必要があります

1)json応答を返します

   Route::filter('auth', function()
   {
      if (!Auth::check()) {
        return Response::json(array('flash' => 'Please log in.'), 401);
      }
   });

また

2)ログインビューにリダイレクトする

    Route::filter('auth', function()
    {
       if (!Auth::check()) {
         return Redirect::to('login');
       }
    });
于 2014-09-16T05:47:14.943 に答える