所以,如果你因此,在這點上做類似laravel資源控制器/途徑和模式
$ 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
只會給[]
作爲迴應,當你請求 「/小丑/ 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:「根據路由回調/控制器的順序將路由參數注入路由回調/控制器 - 回調/控制器參數的名稱無關緊要。」但在這種情況下,它看起來像參數的名稱很重要?
所以我正在尋找一些澄清這兩點,我錯過了什麼?
啊,謝謝Louis,那就是我一直在尋找的東西。我假設資源名稱是複數的「singularized」版本。 我在猜測「引擎蓋下」,那麼''clowns'=>'clown''正在發生。根據你的建議,'routes:list'正確顯示「clowns/{turboClown}」 –
它實際上只是一個數組來明確告訴Laravel它應該使用哪個參數爲哪個資源:) – louisfischer