質問: 皆様、お世話になります。 現在勉強がてら、Cakephpでシステムを作っているのですが、 以下のルーティングルールを実現したく試行錯誤しています。 http://example.com/〇〇 上記のURLにアクセスした際、〇〇はgetのパラメータとして認識させ、SampleController の index アクション へアクセスさせたい場合、routes.phpへどのように記述すれば宜しいでしょうか? 〇〇は半角英数字の文字列です。(abc や a123) ただし、〇〇が admin 場合のみ (http://example.com/admin)、UsersControllerへアクセスさせるという制約があります。 最後までお読み頂き有難うございます。 お詳しい方ご教授のほど宜しくお願い致します! 【開発環境】 MacOSX 10.10.5 PHP 5.6 Cakephp 2.5.1
回答: 自己解決致しました。 下記の内容をroutes.phpへ記述致しました。 ``` Router::connect("/:param", array('controller' => 'samples', "action" => "index", "method" => "GET"), array("param"=>"[a-z0-9]+") ); Router::connect('/admin/login/', array('controller' => 'users', 'action' => 'login', 'prefix' => 'admin', 'admin' => true)); ``` あと、SamplesControllerでのパラメータの受け取り方は、indexアクション内に ``` function index(){ if ($this->request->params['param']) { $str = $this->request->params['param']; } } ``` で受け取れるようです。 参考にさせていただいたサイト様は、 http://qiita.com/Sulkysoftware/items/3e11a67c342b5a9de1fd です。 質問を閲覧頂いた皆様、有難うございました。 引き続き宜しくお願い致します。 とりいそぎ、お礼とご報告まで。