Laravel自定义管理过滤器,带有重定向循环

时间:2014-11-02 09:23:54

标签: php laravel admin

我这里有一个愚蠢的问题。我在我的应用中进行了无限重定向。我理解为什么,但不知道如何解决这个问题。

在我的routes.php中,我有以下代码:

Route::filter('admin', function(){
    if(Auth::user()->admin){
        return Redirect::to(Route::current()->getPath());
    }else{
        return Redirect::to('/');
    }
});
Route::when('admin/*', 'admin');

当我调用网址/admin/createNews时,浏览器会加载一段时间并告诉我存在重定向。对我来说这是合乎逻辑的,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:1)

如果您的过滤器通过,执行流将继续到最初请求的路由,而不需要return Redirect。所以解决方案就是改变你的逻辑:

Route::filter('admin', function() 
{
    if( !(Auth::user()->admin) ) 
    {
        return Redirect::to('/');
    }
});