0

在 Laravel 4 中,您可以使用以下方式将控制器操作分配给路由:

Route::any('/', 'PagesController@index');

但是,在我的应用程序中,我想根据用户是否登录使用不同的控制器和操作。

我曾尝试过这样的事情,但它不起作用:

Route::any('/', function() {
    if (Auth::check()) {
        return 'UsersController@index';
    } else {
        return 'PagesController@index';
    }
});

我采取的解决方案是这样的,但我觉得必须有一种适当的方法来实现这一点,特别是在发生不仅仅是登录检查的情况下:

Route::any('/', (Auth::check() ? 'UsersController@index' : 'PagesController@index'));
4

1 回答 1

2

if如果要为已登录的用户显示不同的主页,则该语句应位于路由组之外。

if (Auth::check())
{
    Route::any('/', 'UsersController@index');
}
else
{
    Route::any('/', 'PagesController@index');
}

此外,您可能会考虑实现某种身份验证过滤器,然后将未登录的用户重定向到不同的页面。

于 2013-04-19T01:06:06.270 回答