检查Auth User角色id是否与Laravel中的数组匹配

时间:2017-05-28 10:55:05

标签: php laravel

我正在尝试评估auth用户的角色数组。 100和102是我想要检查的角色值。如果Auth用户有其中一个,则返回true。这可能吗?到目前为止,这是我的代码:

if (Auth::user()->role_id == ([100, 102]) {
//process code here. A lot of code. 
}

我不希望一次重复和检查一个因为处理代码很多并且会使文件冗长。

2 个答案:

答案 0 :(得分:3)

in_array()肯定会对你有用:

if (in_array(auth()->user()->role_id, [100, 102]))

在这种情况下,您还可以定义global helper以检查当前用户是否属于某个角色或角色组:

if (! function_exists('isAdmin')) {
    function isAdmin()
    {
        return in_array(auth()->user()->role_id, [100, 102]);
    }
}

然后你就可以在控制器,模型,自定义类等中使用这个帮助器了:

if (isAdmin())

甚至在Blade视图中:

@if (isAdmin())

答案 1 :(得分:1)

As hassan said you can use in_array()

$a= Auth::user()->role_id;
$b= in_array(100, $your_array);
$c= in_array(102, $your_array);

if ( $a == $b && $a == $c ) {
  //process code here. A lot of code. 
}