Php 对于laravel策略,Authorize或can方法始终返回false
我在拉雷维尔制定政策时遇到了麻烦。我使用的是与Laravel策略概念集成的Laravel voyager管理面板。我已经为内容模型创建了策略,并将其分配给内容包。为了检查结果,我只是在view函数中返回true。然而,它仍然返回false 以下是ContentPolicy类的一个片段:Php 对于laravel策略,Authorize或can方法始终返回false,php,laravel,authorization,voyager,Php,Laravel,Authorization,Voyager,我在拉雷维尔制定政策时遇到了麻烦。我使用的是与Laravel策略概念集成的Laravel voyager管理面板。我已经为内容模型创建了策略,并将其分配给内容包。为了检查结果,我只是在view函数中返回true。然而,它仍然返回false 以下是ContentPolicy类的一个片段: /* * Determine whether the user can view the content. * * @param \App\User $user
/*
* Determine whether the user can view the content.
*
* @param \App\User $user
* @param \App\Content $content
* @return mixed
*/
public function view(User $user, Content $content)
{
return true;
}
在ContentController中:
public function view(Request $request)
{
$content=Content::all();
return var_dump($this->authorize("view",$content));
}
我在这里登记了我的保单
class AuthServiceProvider extends ServiceProvider
{
/**
* The policy mappings for the application.
*
* @var array
*/
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
Content::class => ContentPolicy::class
];
/**
* Register any authentication / authorization services.
*
* @return void
*/
public function boot()
{
$this->registerPolicies();
Passport::routes();
//
}
}
值得注意的是,“browse_admin”在这种情况下对laravel voyager很有效
我感谢你的帮助。提前感谢基于此,您应该在AuthServiceProvider
中注册您的策略,如下所示:
基于此,您应该在AuthServiceProvider
中注册策略,如下所示:
您是否将放在您的保单中的
方法之前?如果是,请将其删除。您是否将放在您的保单中的
方法之前?如果是,请将其删除。我遇到了同样的问题并解决了它,您需要将其添加到您的保单中,这是Voyager检查的内容
public function browse(){
return true;
}
public function add(){
return true;
}
public function delete(){
return true;
}
public function edit(){
return true;
}
public function read(){
return true;
}
我也遇到了同样的问题并解决了它,您需要将此添加到您的策略中,这是Voyager检查的内容
public function browse(){
return true;
}
public function add(){
return true;
}
public function delete(){
return true;
}
public function edit(){
return true;
}
public function read(){
return true;
}
您是否已在AuthServiceProvider
中添加了策略?请检查。感谢您的回复,我这样做了,但它不起作用。您是否在AuthServiceProvider
中添加了策略?请检查。谢谢您的回复,我这样做了,但它不起作用。您是否正在尝试验证用户?默认情况下,如果传入的HTTP请求不是由经过身份验证的用户发起的,则所有门和策略自动返回false“权限,但不使用自行创建的策略您是否尝试使用经过身份验证的用户?默认情况下,如果传入的HTTP请求不是由经过身份验证的用户发起的,则所有门和策略将自动返回false。是的,我对经过身份验证的用户执行此操作,它使用“browse_admin”权限,但不使用自行创建的策略