一致するルートを作成したい:
search-results/result_Abc
search-results/result_Abc,11
search-results/result_Abc,2,3,4,6
等々。言い換えれば、リンクが提供しない場合はデフォルト値が必要です。次のようなルート:
search-results/result_([a-zA-Z]+)[,(\d+)]{1,8}
また
search-results/result_([a-zA-Z]+)(\,\d+){1,8}
動作しますが、リンクからパラメーターをキャッチしません (デフォルトのみを取得します)。
これまでのところ、私が書くことができた唯一の実用的なソリューション(すべてのパラメータを提供する必要があります)を以下に示します。
new Zend_Controller_Router_Route_Regex(
'search-results/result_([a-zA-Z]+),(\d+),(\d+),(\d+),(\d+),(\d+),(\d+),(\d+),(\d+)',
array(
'module'=>'www',
'controller'=>'index',
'action'=>'searchresults',
'city' => 'wszystkie',
'distance' => 0,
'driversLicense' => 0,
'smoking' => 1,
'experience' => 0,
'languageKnowledge' => 0,
'timeDeparture' => 0,
'age' => 0,
'page' => 1
),
array(
'1'=>'city',
'2'=>'distance',
'3'=>'driversLicense',
'4'=>'smoking',
'5'=>'experience',
'6'=>'languageKnowledge',
'7'=>'timeDeparture',
'8'=>'age',
'9'=>'page'
)
)