我有这样的update方法 public function update(Contact $contact){ $this->authorize('ownItems', $contact); ......}和ContactPolicy:public function ownItem(User $user,Contact $contact){ return true;} 它工作正常,但是当我在我的方法中替换为时Contcact向我显示:ContactRequestupdate403 此操作未经授权。update方法 :public function update(ContactRequest $contact){ $this->authorize('ownItems', $contact); .......}authorizeContactRequest 中的方法:public function authorize(){ return true;}
2 回答

森林海
TA贡献2011条经验 获得超2个赞
ContactRequest是一个 laravelRequest类实例
public function update(ContactRequest $request,Contact $contact)
{
$this->authorize('ownItems', $contact);
.......
}

互换的青春
TA贡献1797条经验 获得超6个赞
您在 中拼错了方法名称$this->authorize('ownItems', $contact);
,它应该是“ownItem”
UPD
ContactRequest
如果您的请求中没有模型标识符,则可能是方法的实例,Illuminate\Http\Request
但authorize
方法正在等待。Model
首先你应该找到模型:$model = Contact::find($contact->input('id'))
然后检查你的政策$this->authorize('ownItems', $model)
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消