在Laravel 5删除请求中无法从路由访问资源ID?

Roh*_*han 9 php laravel laravel-5

如果资源属于我在Laravel 5中创建了删除请求的用户,我试图在资源上授权删除请求.

对于另一种资源,我可以做类似的事情:

public function authorize()
{
    if(Pivot::findOrFail($this->route('pivots'))->user_id != Auth::user()->id){
        return false;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

所以基本上$this->route('pivots')会返回用户试图删除的数据透视表的id,我会检查它是否属于当前用户.

但是现在我正在尝试使用与此类似的其他资源:

public function authorize()
{
    if(CropSection::findOrFail($this->route('crop-sections'))->pivot->user_id != Auth::user()->id){
        return false;
    }

    return true;
}
Run Code Online (Sandbox Code Playgroud)

我试图死并转储$this->route('crop-sections'),它出来是null但请求是http://localhost:8000/crop-sections/10id为10.

我究竟做错了什么?

Ale*_*dis 4

您必须将“crop-sections”更改为“crop_sections”。

路由参数不能包含-字符。请改用下划线 (_)。

您可以在这里找到更多信息。