【发布时间】:2018-01-16 14:28:27
【问题描述】:
所以如果你做类似的事情
$ artisan make:model TurboClown
$ artisan make:controller TurboClownController -r --model=TurboClown
所以此时可以添加如下内容:
Route::resource('clowns','TurboClownController');
致您的routes/web.php。现在我有 clowns/{clown} 这样的路线,而我 routes:list 和工匠一起使用。
但是,我的show 函数是这样的:
public function show(TurboClown $turboClown)
例如,当您 return $turboClown 请求“/clowns/3/”时,它只会给出 [] 作为响应。我花了一段时间才弄清楚,如果我将 $turboClown 参数更改为 $clown,我会得到一个 JSON TurboClown 作为响应。
所以从某种意义上说,我解决了我的问题。但我对以下几点感到好奇:
对我来说,https://laravel.com/docs/5.4/controllers#restful-naming-resource-route-parameters 读起来好像我可以添加
['parameters' => ['clown' => 'turboClown']然后show()可以使用“turboClown”,但事实并非如此。根据https://laravel.com/docs/5.4/routing#route-parameters:“路由参数根据它们的顺序注入到路由回调/控制器中 - 回调/控制器参数的名称无关紧要。”但在这种情况下,参数的名称似乎很重要?
所以我正在寻找对这两点的某种澄清,我错过了什么?
【问题讨论】: