3

Laravel4プロジェクトで認証システムを作成しています。auth"before"フィルターを使用しようとしています。

私のroutes.phpファイルには、次のものがあります。

Route::get('viewer', array('before' => 'auth', function() {
    return View::make('lead_viewer');
}));

Route::get('login', 'LoginController');

beforeフィルターは、filters.phpファイル内の次の行を呼び出します。

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

ログインルートに手動で移動できます。しかし、認証システムはこれを起こさせていません。私はcomposer dump-autoload数回走ったので、それは問題ではありません。手動でログインページをロードできるので、何をしていますか?

4

3 に答える 3

1

おそらくこれで解決したと思いますが、同様の問題を解決しようとしているときにあなたの投稿に出くわした後、私の考えを共有したいと思いました...

Laravel はゲストメソッドの名前付きルートを探しているのではなく、pathを期待しています。

名前付きルートとパスが同じ、つまり「ログイン」であるため、例が機能します。URL を「login」以外に変更してみて、失敗することを確認してください。

名前付きルートを使用する場合は、ルート ヘルパー メソッドを使用する必要があります...

if (Auth::guest()) return Redirect::guest( route('login') )

それが誰かを助けることを願っています。

于 2014-08-18T08:32:23.473 に答える