似乎我无法授权用户更新特定模型。授权全部或全部无效,但不适用于特定型号。
为第二个模型添加另一个参数似乎不起作用:
Too few arguments to function App\Policies\ProjectPolicy::update(), 1 passed
这是政策(即使显然尚未执行):
public function update(User $user, Project $project)
{
dd($project)
}
这是项目控制器中的授权:
if ( !$currentUser->can( 'update', Project::find($id) ) )
{
}
答案 0 :(得分:0)
似乎$this->authorize('update', Project::find($id))
是正确的语法,但是,我还有其他一些我没有注意到的冲突问题。
答案 1 :(得分:0)
这个[参数太少] [1]
[1]:https://webstoked.com/set-up-controller-methods-policies-laravel/给了我一些深刻的见解。 代替:
public function update(Post $post, $id){
$this->authorize('update', $post);
$data = $this->validateRequest();
if (Post::where('id', $id)->exists()) {...
使用...
public function update(Post $post){
$this->authorize('update', $post);
$data = $this->validateRequest();
if ($post->id) {...