私の質問は、次のようにリソース名を変更するときについてです。
Route::resource('photos', 'Photos\PhotoController')->parameters(['photo' => 'photo_id']);
これは機能し、デフォルトの「photo」パラメータ名は「photo_id」に変更されます。しかし、次のようにネストされたリソースルートを使用すると、次のようになります。
Route::resource('photos.captions', 'Photos\PhotoController')->parameters(['photo' => 'photo_id', 'caption' => 'caption_id']);
「caption」パラメータ名は「caption_id」に変更されません。
両方を変更する方法はありますか?ありがとうございました :)
以下が機能するはずです。
Route::resource('photos.captions', 'Photos\PhotoController')
->parameters(['photos' => 'photo_id', 'captions' => 'caption_id']);
リソース名とパラメーター名は一致する必要があります。
photos
、パラメータ:photos
captions
、パラメータ:captions
ドキュメントから:
デフォルトでは、Route :: resourceは、リソース名の「単一化された」バージョンに基づいて、リソースルートのルートパラメータを作成します。パラメータメソッドを使用すると、リソースごとにこれを簡単にオーバーライドできます。parametersメソッドに渡される配列は、リソース名とパラメーター名の連想配列である必要があります。
Route::resource('users', 'AdminUserController')->parameters([
'users' => 'admin_user'
]);
上記の例では、リソースのshowrouteに対して次のURIが生成されます。
/users/{admin_user}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加