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


Laravel option only for the admin (permission)

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

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

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

我还写了说明if,它只显示用户管理员"添加用户"选项:

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

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

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

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

然后它非常易于使用...

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