Laravel 5.8 403 此操作未经授权

我有这样的update方法


  public function update(Contact  $contact)

{


    $this->authorize('ownItems', $contact);

    ......

}

和ContactPolicy:


public function ownItem(User $user,Contact $contact)

{

  return true;

它工作正常,但是当我在我的方法中替换为时Contcact向我显示:ContactRequestupdate


403 此操作未经授权。


update方法 :


public function update(ContactRequest  $contact)

{

    $this->authorize('ownItems', $contact);

    .......

}

authorizeContactRequest 中的方法:


public function authorize()

{

    return true;

}


隔江千里
浏览 174回答 2
2回答

森林海

ContactRequest是一个 laravelRequest类实例public function update(ContactRequest $request,Contact  $contact){    $this->authorize('ownItems', $contact);    .......}

互换的青春

您在 中拼错了方法名称$this->authorize('ownItems', $contact);,它应该是“ownItem”UPDContactRequest如果您的请求中没有模型标识符,则可能是方法的实例,Illuminate\Http\Request但authorize方法正在等待。Model首先你应该找到模型:$model = Contact::find($contact->input('id'))然后检查你的政策$this->authorize('ownItems', $model)
打开App,查看更多内容
随时随地看视频慕课网APP