我一直在寻找简单的Laravel 5.6+版本角色和用户解决方案。
我想要一张users
桌子。因此,我在表中将user_type
添加为
string
$table->enum('role', ['admin', 'user']);
我应该创建或更新哪个文件以保护/admin
路由下的所有内容。并且不要让admins
使用users
路由吗?
答案 0 :(得分:1)
您应该创建一个在所有/ admin路由中都处于活动状态的中间件。在此中间件中,您应该检查登录(Auth::user()
)的用户是否具有“ admin”角色。
Auth::user()
引用了User
模型。
因此,在User
模型中,您可以创建类似isAdmin()
的函数:
public function isAdmin()
{
return $this->role === 'admin'
}
在中间件(或任何需要的地方)中,您只需编写
if(Auth::user()->isAdmin()) {
// do something if user is admin
} else {
// do something if user is not admin
}
由于它处于User
模型中,因此您还可以为常规用户模型编写$user->isAdmin()
。