Laravel Route组更改哪个视图用于访客和成员

时间:2014-07-31 09:47:28

标签: php laravel

我目前正试图找出Laravel中的URL路由,我已经有了基本页面,但我正在尝试找出区分来宾和成员的最佳方法。

目标是为访客提供索引页面用户启动视图,如果用户已登录,则使用仪表板视图。

像这样:

Route::group(array('before' => 'guest'), function()
{
    Route::get('/', function()
    {    
        return View::make('splash');
    })); 
});

Route::group(array('after' => 'auth'), function()
{
    Route::get('/', function()
    {    
        return View::make('dashboard');
    })); 
});

目前这不起作用,因为即使用户未登录,它似乎总是尝试显示经过身份验证的'after' => 'auth'页面?

2 个答案:

答案 0 :(得分:1)

如果您想要同一路线的不同视图,具体取决于是否登录,您只需定义路线一次,然后在闭包检查中查看用户是否已登录,然后返回相关视图

Route::get('/', function()
{
    if (Auth::check())
        return View::make('dashboard');

    return View::make('splash');
}

答案 1 :(得分:0)

这样的事情可能让你更接近解决方案,但它仍然无法运行,还有更多的工作要做,然后只显示视图。此外,如果您想在auth用户和访客用户的路由'/'上显示不同的内容,则无法使用过滤器。

Route::group(array('before' => 'guest'), function()
{
    Route::get('login', function()
    {    
        return View::make('users.login');
    })); 
});

//~ Route::group(array('before' => 'auth'), function()
//~ {
    Route::get('/', function()
    {   
        // if user is logged in
        if (Auth::check())
            return View::make('dashboard');
        else
            return View::make('splash');
    })); 
//~ });