やったこと

webサービスを作るときに考えたことを垂れ流します

【CakePHP3】ルーティング設定で複数の引数をアクションに渡す!

CakePHP3のRouting設定でずいぶんつまづいてしまいました・・。

例えば以下のようなURLでサイトにアクセスするとしますよね。

http://hogege.com/edit/hoge123/hoge456

このときコントローラー側のdisplayアクションに以下のような引数が渡されるようにしたかったんです。

display('hogege123', 'hogege456')

それはRouting設定をこんな風に書き込むことで実現できます(超普通ですね・・)。

$routes->connect('/edit/*', ['controller' => 'Edit', 'action' => 'display']);

プレースホルダーを使って値判定などをしたい場合はこんな感じ。

$routes->connect('/edit/:hoge1/:hoge2', ['controller' => 'Edit', 'action' => 'display'],
                ['hoge1' => '.*', 'hoge2' => '.*', 'pass' => ['hoge1', 'hoge2']]);


公式の説明は難しくてちょっと分かりにくいですね。まぁ日本語で書いてあるだけずいぶんましですが・・。