Laravel 5中间件允许根据用户类型进行特定视图

时间:2015-08-19 00:46:13

标签: php laravel middleware

我是laravel的初学者。

我正在尝试为包含“ADM”类型的用户创建一个部分,该类型在表用户中定义。

如果用户为“ADM”类型,则重定向到adm视图,否则重定向到其他位置。

我为此创建了一个中间件,完美无缺,除非我尝试使用User模型中的函数验证用户的类型。

当我去路由/浏览并调用中间件时。浏览器给我一个错误“ERR_TOO_MANY_REDIRECTS”

我的中间件中的代码:

public function handle($request, Closure $next) {
    if(User::IsAdm()) {
        return redirect('adm');
    } else {
        return redirect('404');
    }

    return $next($request);
}

我在用户模型上的功能:

public static function IsAdm() {
    if (\Auth::check()) {
        $loggedUser = \Auth::user();
        if($loggedUser->type == 'ADM') {
            return true;
        }
    }
    return false;
}

如果有人能帮助我,我真的很感激。

谢谢你们:)

2 个答案:

答案 0 :(得分:0)

我已经测试了您的代码,它对我来说运行正常。
尝试查看您是否正在加载正确的视图,或确保#hi属性作为db存在用户表中的列。

答案 1 :(得分:0)

我将代码更改为此,现在它完美无缺。

感谢@jeemusu

public function handle($request, Closure $next) {
if(!User::IsAdm()) {
    return redirect('404');
} 

return $next($request);

}