Php 在laravel应用程序中,如何配置isSuperAdmin()?
我想使用Gate facades将管理员身份验证添加到我的应用程序中。基本上,如果用户是管理员,我想进行授权,这样他就可以看到所有的帖子,如果他是普通用户,那么他只能看到自己的帖子。我从laravel官方文档复制了这段代码,但我不了解isSuperAdmin()的来源以及如何配置它Php 在laravel应用程序中,如何配置isSuperAdmin()?,php,laravel,Php,Laravel,我想使用Gate facades将管理员身份验证添加到我的应用程序中。基本上,如果用户是管理员,我想进行授权,这样他就可以看到所有的帖子,如果他是普通用户,那么他只能看到自己的帖子。我从laravel官方文档复制了这段代码,但我不了解isSuperAdmin()的来源以及如何配置它 Gate::before(function ($user, $ability) { if ($user->isSuperAdmin()) { retu
Gate::before(function ($user, $ability)
{
if ($user->isSuperAdmin())
{
return true;
}
});
如您所见,该方法在
$user
对象中被调用。因此,您只需要在模型中定义该逻辑:
User.php
public function isSuperAdmin()
{
/**
* Here goes your logic to determine which users are "super_admin"
*
* For example, in case you have a'is_super_admin' boolean column
* in your database, you could do:
*/
return $this->is_super_admin;
}
有什么问题吗?你有什么错误吗?门不工作吗?所以,我们需要对用户数据库表进行更改。?我的意思是需要添加一行吗?Thanks@Yasir这只是一个例子,可能您的模型中有一个“角色”关系,它将用户和角色表联系起来(可能是一个多对多关系)。因此,在这种情况下,您可以这样做:
return$this->roles()->where('role','super admin')->exists()代码>或根据特定逻辑计算分数。你可以用几种方法来做这件事。你明白了。