スラッシュで区切りますか?
// www.sitename.com/[COMPANY NAME]/medicine/[DISEASE]
Router::connect('/:company/medicine/:disease', array('controller' => 'diseases', 'action' => 'index'),
array('pass'=>array('company','disease'),
'company'=>"[a-zA-Z\.]+*",
'disease'=>'[a-zA-Z\.]+'));
と私はあなたの代わりにスラッシュのアンダースコアを使用することができるかどうかわからないんだけど、コントローラ
function diseases($company,$disease){
}
は、私が前にそれを試したことがありません。あなたはEDITED私は)=の結果を知ることが
グッドラック
を希望しようとしない場合:[OK]を、私はこの問題についてあまりにも興味があったと私はこの
Router::connect('/:company_medicine_:disease', array('controller' => 'pages', 'action' => 'test'),
array('pass'=>array('company','disease'),
'company'=>'[a-zA-Z]+',
'disease'=>'[a-zA-Z]+'));
のようなルートを書きましたと私は疑いのように、そのはu_U
を働いていない、問題はケーキがcustom route elementの名前は/ REAに関する数分後... :company_medicine
ない:company
であると考えているということですCakeのコードを引用すると、Cakeがルートを解析し、渡された要素の名前を抽出する正確な場所が見つかりました。あなたは、正規表現中の名前を見ることができるように
preg_match_all('#:([A-Za-z0-9_-]+[A-Z0-9a-z])#', $parsed, $namedElements);
:それはクラスで/cake/libs/router.phpに(ライン1369程度)CakeRoute、方法_writeRoute()です要素はアンダースコアを含むことができるので、Cakeはパラメータの名前を ":company_medicine"と考えます。 だから、4つの解決している:それはmedicine_[COMPANY]_[DISEASE]
から router.php のライン1369を修正するだろうので、使用は、あなたのURLのセパレータ
変化としてごパラメータの順序を
- をスラッシュこの(お奨めしないで、私はそれはプラグインのルートを破るだろうと思う):
preg_match_all('#:([A-Za-z0-9]+)#', $parsed, $namedElements);
はあなたの.htaccessでurlリライトを使用して[COMPANY]_medicine_[DISEASE]
を[COMPANY]/medicine/[DISEASE]
にリダイレクトするので、ケーキにはスラッシュで区切られて表示され、ブラウザーには区切られた下線が表示されます。 (私はそれをテストしていない、私はケーキ= Pの.htaccessに別のルールを追加したことがない)