【发布时间】:2015-07-02 10:05:13
【问题描述】:
如果资源属于我在 Laravel 5 中为其创建了删除请求的用户,我正在尝试授权对资源的删除请求。
对于另一个资源,我可以这样做:
public function authorize()
{
if(Pivot::findOrFail($this->route('pivots'))->user_id != Auth::user()->id){
return false;
}
return true;
}
所以基本上$this->route('pivots') 会返回用户试图删除的数据透视的 id,我会检查它是否属于当前用户。
但现在我正在尝试另一种类似于此的资源:
public function authorize()
{
if(CropSection::findOrFail($this->route('crop-sections'))->pivot->user_id != Auth::user()->id){
return false;
}
return true;
}
我试图死掉并转储$this->route('crop-sections'),结果为空,但请求是http://localhost:8000/crop-sections/10,其ID 为10。
我做错了什么?
【问题讨论】:
-
如果您从路线和/或路线名称中删除破折号会怎样?
-
想到了,但我没有尝试,我不知道为什么。我会试一试,让你知道。不幸的是,我不会有几个小时在 PC 旁。不过谢谢。我试试看
-
pivot属性从何而来?它是关系还是自定义访问器? -
您是否尝试过运行
php artisan route:list来查看参数名称是否不是“crop-sections”? -
@Alex:你是对的。删除“-”连字符解决了我的问题。向我解释为什么,赏金是你的。 :)