1
我有兩條路徑匹配具有相同外觀模式的url,不同之處在於$ actionRoute,只有當變量:action對應於'myaction'時,纔會匹配。Zend_Router需求不匹配
如果我去/en/mypage/whatever/myaction它按預期通過$ actionRoute。
如果我去/en/mypage/whatever/blahblah它會被$ actionRoute拒絕並且被$ genRoute匹配。
如果我去/EN /我的空間/不管應該由$ genRoute匹配,但它得到了$ actionRoute不是拋出和異常,因爲動作noactionAction()不存在匹配。
不知道我做錯了什麼,我會很感激你的幫助。
$genRoute = new Zend_Controller_Router_Route(
':lang/mypage/:var1/:var2',
array(
'lang' => '',
'module' => 'mymodule',
'controller' => 'index',
'action' => 'index',
'var1' => 'noone',
'var2' => 'no'
),
array(
'var1' => '[a-z\-]+?',
'lang' => '(es|en|fr|de){1}'
)
);
$actionRoute = new Zend_Controller_Router_Route(
':lang/mypage/:var1/:action',
array(
'lang' => '',
'module' => 'mymodule',
'controller' => 'index',
'action' => 'noaction',
'var1' => 'noone',
),
array(
'action' => '(myaction)+?',
'var' => '[a-z\-]+?',
'lang' => '(es|en|fr|de){1}',
)
);
$router->addRoute('genroute',$genRoute);
$router->addRoute('actionroute',$actionRoute);
喜添,這是行不通的,它拋出一個異常與「未規定動作」的消息。 無論如何感謝。 – elbicho 2009-10-08 14:48:08
奇怪的是,我測試了你的示例代碼,它確實適用於我。你使用什麼版本的ZF?另外一個哈克的解決辦法是更換:在您的$ actionRoute「myaction」行動,刪除正則表達式的動作和硬編碼的動作「myaction」第一陣列英寸 – 2009-10-08 15:58:02
我正在使用1.8.4PL1 – elbicho 2009-10-09 07:29:48