我在使用一个特定名称(“总部”)的路由中遇到了这个问题:“显示”路由的id参数为复数形式,但通常为单数形式。
如果我写:
Route::resource('quarters', 'HeadquartersController');
执行此命令行:
php artisan route:list
我按预期获得了单数形式的参数:
Route::get('/quarters/{quarter}', 'HeadquartersController@show');
但是如果我写:
Route::resource('headquarters', 'HeadquartersController');
执行此命令行:
php artisan route:list
我得到复数形式的参数:
Route::get('/headquarters/{headquarters}', 'HeadquartersController@show');
我解决了这个问题
Route::resource('headquarters', 'HeadquartersController')->parameters([
'headquarters' => 'headquarter'
]);
但是我想了解这种行为,有人可以帮我吗?
答案 0 :(得分:1)
在后台,Laravel仅使用其自己的帮助器Str :: singular。 https://laravel.com/docs/5.8/helpers#method-str-singular
这并不完美,并且有一些例外。您可以在这里阅读它们: https://stillat.com/blog/2017/12/06/laravel-5-string-helpers-getting-the-singular-form-of-a-string-value
特殊情况
以下任何单词或单词结尾 表将不受单一方法的影响。这是 因为生成的单词已经是单数,或者因为没有 拐点可用。单词结尾以前缀*:
表示下表列出了不被翻译的词 奇异方法。这是因为生成的单词已经 单数,或者因为没有可用的明确的变形规则,或者 他们分开处理(请参阅特殊情况表)。
Amoyese野牛Borghese鲷马裤马裤Cantus 鲤鱼底盘快船代号caoitus刚果contretemps corps 数据碎片糖尿病djn eland麋鹿设备法罗语 比目鱼福州家具绞刑架 日内瓦热那亚人Glibertese涂鸦 总部疱疹狂犬病Hottentotese 信息局jackanapes Kiplingese 刚果人Lucchese行李鲭鱼马耳他语*媒体喵喵麋 腮腺炎南京新闻纽西斯北京体育北京山麓钳 Postoiese钳子葡萄牙程序狂犬病大米犀牛三文鱼 砂捞越剪刀海鲈鱼海鲈系列剃须剪西门子 种类职员猪睾丸裤鳟鱼金枪鱼佛蒙特州 威科努斯人争夺牛羚扬格人