fuelphp ルーティングで「hoge/edit/123」と「hoge/foo/edit/123」の問題
ルーティングで設定していないのに・・・違うトコに飛ばされる
作成日:2020-05-16, 更新日:2020-05-16
基本
深く調査しておらず・・・詳細は不明。とりあえず分かったコト、対応したコトをメモる。
経緯
1.「hoge/edit」というPATHで編集formを表示するようにしていた
→「コントローラ/hoge/edit.php」の「acction_index()」を呼びだす
2.「hoge/foo/edit」というPATHを新たに増やした
→「コントローラ/hoge/foo.php」の「acction_edit()」を呼びだす
当初は問題無く動いていた。
気づくと・・・両方とも「コントローラ/hoge/edit.php」の「acction_index()」を呼びだすようになっていた。
調査
▼ひとまずありがちなミスを疑う
・リンクのPATH指定のミス→問題なし
・「コントローラ/hoge/foo.php」の「acction_edit()」の中で「hoge/edit」にリダイレクト→リダイレクトなし
・「コントローラ/hoge/foo.php」の「acction_edit()」以外(before()やビューなど)で「hoge/edit」にリダイレクト→リダイレクトなし
そもそも「コントローラ/hoge/foo.php」の「acction_edit()」に入っていないので、見当違いの調査をしていたコトになる
▼次に・・・今さらだけどルーティングを疑う
・ルーティングで変な設定をしている→していない
▼最後に・・・
・coreファイルとか調べるのが面倒なので・・・挫折
対策
・「hoge/foo/edit」を「hoge/foo/modify」に変更
・「コントローラ/hoge/foo.php」の「acction_edit()」を「action_modify()」に変更
ひとまず解決。
めも
・Xampp+FuelPHPの組み合わせの問題→未調査