我照着文档写的,看了半天不知道哪里出错了,求大佬帮忙给看一下:
在AuthServiceProvider.php里的$policies属性里注册了ArticlesPolicy这个类。
在Policies文件夹下面也用artisan控制台命令生成了一个ArticlesPolicy类:
但是我在控制器里面使用Gate::allows()命令的时候,却出错了:
大佬帮忙看看是哪里出错了,我自己看了半天没看出来。
这个是ArticlesPolicy策略类里定义的:
public function update(User $user, Article $article)
{
return $user->id == $article->user_id;
}
这个是控制器里使用Gate类的地方:
public function edit($id)
{
$article = Article::findOrFail($id);
if (Gate::allows('articles.update',$article)) {
return view('articles.edit', compact('article'));
}else{
return 'helloworld';
}
}
在不加权限管理的时候,不管有没有权限,访问类似blog.test/articles/123/edit这样的地址的时候是没问题的。加了权限管理后,不管有没有权限,访问同样的地址就会出现上面的报错。
慕田峪9158850
湖上湖