質問させてください。
routeでURLに任意パラメータをセットした場合に他のパラメーターを?で受けられなくなりました。
あるコントローラでの処理を受け取るパラメーターで切り替えるという動作のメソッドを作っています。
で、そのうちのcontent_idというパラメーターだけを?でつなげる形でなく
下記のソースの通りRouteでURLに任意でパラメーターとして設定する形に変更したら他のパラメーターを?で渡しても
全て{content_id?}と認識されてセットされてしまうという状況になってしまいました。
やりたいこととしては、このようなパターンのURLをコントローラーに値を渡したいと考えています。
- http://domain/report/{title} :レポートに紐づくコンテンツ一覧を表示
- http://domain/report/{title}/{content_id?} :特定のコンテンツを表示
- http://domain/report/{title}?create_month=2018-10 :2018/10月のコンテンツ一覧を表示
このうちの3番が渡せない状態になっています。
http://domain/report/{title}/2018-10
となってしまいます。
任意パラメータを使いつつ他のパラメーターを?につなげて受けるにはどのようにすれば良いのでしょうか。
ソースは下記のようになっています。
php
1// routes/web.php 2 3Route::get('report/{title}/{content_id?}','ReportController@show')
php
1// app/Http/Controllers/ReportController.php 2 3public function show(Request $request,$title,$content_id = null){ 4//省略 処理 5}
Laravelのバージョンは5.4です。
アドバイスいただけると幸いです。
回答2件
あなたの回答
tips
プレビュー