Laravel选项仅适用于管理员(权限)

时间:2016-07-06 18:41:53

标签: php laravel permissions

我编写了一个方法,用于检查用户是否是文件UserController.php中的管理员:

public function create(){
    $chackIsAdmin = Auth::user()->permissions;
    if ($chackIsAdmin === 1) {
        return view('users.adduser');
    } else {
        return redirect('warehouse');
    }

在表“users”中,我有列“权限”。每个用户被分配一个数字1或0. 1 - 是管理员,0不是管理员。

我还写了指令if,只显示选项“Add user”用户管理员:

@if (Auth::user()->permissions === 1)  
    <li><a href="{{ url('user/create') }}">Add new user</a></li>
@endif

这一切都正常,但我想知道在Laravel中我是否能以不同的方式做到这一点? 我的方式是否安全?

1 个答案:

答案 0 :(得分:2)

我认为更好的方法是在User模型上编写函数。

class User extends Model 
{
    public function isAdmin()
    {
        return $this->attributes['permissions'] == 1;
    }
}

然后它很容易使用......

return Auth::user()->isAdmin() ? view('users.adduser') : redirect('warehouse');