1
試想一下情況,當URL應該看起來像Zend_Controller_Router_Route_Regex允許'?'在模式
其中頁面參數是可選。
當然,應該定義自定義路線。請看下面的代碼:
$route = new Zend_Controller_Router_Route_Regex(
'catalog/([-a-z]+)(?:\?page=([0-9]*))?',
array('controller'=>'catalog','action'=>'list','page'=>''),
array(1=>'section',2=>'page'),
'catalog/%s?page=%d'
);
$router->addRoute('catalog-section-page',$route);
但是這條路線將不會被觸發「?」符號在網址。
沒有'?' (例如,通過在模式中添加轉義的'!'符號),一切都按照它應該的方式工作。 有沒有辦法實現'?'自定義正則表達式路由中的存在?也許我在模式上做錯了什麼?
P.S .:不要提供使用'/'而不是'?',問題與Zend_Controller_Router_Route_Regex實現中的模式限制有關。
事實上,我使用Zend網址視圖助手在我的意見後建立的網址 - 這樣的問題仍未得到解決。 考慮到你的代碼,最好將默認值添加到section參數中,甚至是空的('section'=>'') - 如果以後在視圖中沒有使用此自定義路由傳遞段,則Zend Url視圖幫助程序將通過錯誤。 – BasTaller 2011-02-23 16:54:39