Laravel 5.4政策检查始终为假
因此,我创建了一个策略并在AuthServicePRovider中注册了它,但它总是返回false。这是我第一次与政策打交道,所以我确信我做得不对,但举几个例子,没有什么对我有效 AuthServiceProviderLaravel 5.4政策检查始终为假,laravel,Laravel,因此,我创建了一个策略并在AuthServicePRovider中注册了它,但它总是返回false。这是我第一次与政策打交道,所以我确信我做得不对,但举几个例子,没有什么对我有效 AuthServiceProvider protected $policies = [ 'App\Model' => 'App\Policies\ModelPolicy', Article::class => ArticlePolicy::class, ]; Art
protected $policies = [
'App\Model' => 'App\Policies\ModelPolicy',
Article::class => ArticlePolicy::class,
];
ArticleController@show
public function show($article_id) I
{
$article = DB::table('pjt_article as a')
->join('pjt_categories_article as c', 'a.cate_id', '=', 'c.cate_id')
->where('article_id', $article_id)
->first();
$this->authorize('view', $article->username);
return view('admin.content.show-article', ['art' => $article]);
}
条款政策
public function view(Admin $admin, Article $article)
{
return $admin->id == $article->username;
}
我正在努力,但没有工作
此图像错误为403
您的策略映射到模型类名。您必须有一个模型实例才能做到这一点。您的查询直接使用查询生成器,而不返回模型实例
$article = Article::....->first();
对于authorize
您希望将要授权的资源传递给authorize
而不是您最终将在策略中签入的资源的属性:
$this->authorize('view', $article->username);
// to
$this->authorize('view', $article);
Gate知道对资源使用策略的方式是因为传递的对象的类型,或者如果传递的是类名。您是否在
AuthServiceProvider
中导入了文章
和文章策略
类?@Maraboc,请看第一个代码block@Quezler我说的导入是指使用App\Article
:pinarticlepolicy使用App\Model\Admin;使用App\Model\Article代码>如果我没有弄错的话,在页面呈现之前会抛出一个异常:)图像错误数组:4[“能力”=>“查看”“结果”=>错误的“用户”=>7个参数”=>“[0=>Object(std
我只是理解你发布的内容。@Maraboc之后帮助我,非常感谢你们