-1

メインURLの例のようなlaravel 4でルートのシステムをセットアップしようとしています: http://laravel.dev/このルートで2つの異なるコントローラーのうちの1つをレンダリングできます。

例:

ユーザーAがログインしている場合、このURLでメインページを表示します-> http://laravel.dev/

ユーザーAがログインしていない場合、このURLにもログインページが表示されます-> http://laravel.dev/

ルートをそのように設定しようとしましたが、空白のページが表示されます。どうすれば解決できますか?

Route::get('/', array('before' => 'detectLang',function(){
    if (Auth::guest()) { // check if user is logged
        Route::get('/', 'MainController@getView'); // function that show the main page
    } else {
        Route::get('/','UserController@getLogin'); // function that render the login page
    }
}));
4

2 に答える 2

3

これは、Laravel でのルーティングの仕組みではありません。ルートのクロージャーは、そのルートにヒットした場合にのみ呼び出されるため、この場合、Laravel はこれら 2 つのルートを作成してリッスンすることができません。

ただし、グループを使用して必要なことを行うことができます。

Route::group(array('before' => 'detectLang'), function()
{
    if (Auth::guest()) { // check if user is logged
        Route::get('/', 'MainController@getView'); // function that show the main page
    } else {
        Route::get('/','UserController@getLogin'); // function that render the login page
    }
});
于 2013-12-17T13:46:59.450 に答える