0

ログインしている場合、インデックスページを別の場所にルーティングしようとしていますが、認証システムが機能していても、期待した場所、つまり getLogged にリダイレクトされず、ログインしているかどうかに関係なく、常に getIndex にリダイレクトされます。

Route::filter('auth', function()
{
    if (!Sentry::check()) return Redirect::to('/');
});

Route::group(array('before' => 'auth'), function() {
  Route::get('/', array('uses' => 'MyController@getLogged'));
});

Route::get('/', array('before' => 'detectLang', 'uses' => 'MyController@getIndex'));

変更して認証が機能することを確認するためにテストしました

Route::group(array('before' => 'auth'), function() {
  Route::get('/', array('uses' => 'MyController@getLogged'));
});

Route::group(array('before' => 'auth'), function() {
  Route::get('/dash', array('uses' => 'MyController@getLogged'));
});

ログインしているときにのみ /dash にアクセスできるように適切に動作するのに、インデックスルートが機能しないのはなぜですか?

4

1 に答える 1

1

同じルートを 2 回宣言していますが、機能しません。この機能を実現するには、authフィルターを追加するguest代わりに、ユーザーが接続されていないかどうかを確認する代わりに、接続されているかどうかを確認するフィルターを追加します。このようなもの:

Route::filter('guest', function () {
    if (Sentry::check()) return Redirect::route('logged');
});

次に、次の行に沿ってルートを設定します。

Route::get('/', array(
    'as'     => 'home',
    'uses'   => 'MyController@getIndex',
    'before' => 'guest'
));

Route::get('/logged', array(
    'as'     => 'logged',
    'uses'   => 'MyController@getLogged',
    'before' => 'auth|detectLang'
));

注:キーによってルートに名前が付けられるため、またはメソッドasで使用できます。Redirect::routeURL::route

于 2013-07-22T01:50:32.717 に答える