Zend framework Zend_路由器参数异常
我的问题是,我希望通过URL传递一些参数值,这些参数值不会触发Zend路由,但会导致defaul控制器/操作对 现在,我的index.php中有以下内容:Zend framework Zend_路由器参数异常,zend-framework,zend-route,Zend Framework,Zend Route,我的问题是,我希望通过URL传递一些参数值,这些参数值不会触发Zend路由,但会导致defaul控制器/操作对 现在,我的index.php中有以下内容: // *** routing info *** $router = Zend_Controller_Front::getInstance()->getRouter(); $router->addRoute('showpage', new Zend_Controller_Router_Route('/show/:title'
// *** routing info ***
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addRoute('showpage', new Zend_Controller_Router_Route('/show/:title',
array('controller' => 'Show',
'action' => 'page')));
// annoying exceptions :(
$router->addRoute('addshow', new Zend_Controller_Router_Route('/show/add',
array('controller' => 'Show',
'action' => 'add')));
$router->addRoute('saveshow', new Zend_Controller_Router_Route('/show/save',
array('controller' => 'Show',
'action' => 'save')));
$router->addRoute('addepisode', new Zend_Controller_Router_Route('/show/addEpisode',
array('controller' => 'Show',
'action' => 'addEpisode')));
$router->addRoute('saveepisode', new Zend_Controller_Router_Route('/show/saveEpisode',
array('controller' => 'Show',
'action' => 'saveEpisode')));
如果没有最后4个路由器,URL/show/add
将导致show/page
,带有title==“add”。
非常感谢您的帮助。首先,请使用静态路由
第二,我很确定你不需要包含前导正斜杠,尽管我不确定这是否是一个问题
由于路线是按相反的顺序匹配的,所以你的路线应该是可行的(我认为)。对于任何与“SaveSpidence”、“addEpisode”、“save”或“add”不匹配的内容,都应通过“showpage”路径
我唯一能想到的另一件事是使“showpage”路线更加具体,比如
'show/page/:title'
首先,用于静态路由
第二,我很确定你不需要包含前导正斜杠,尽管我不确定这是否是一个问题
由于路线是按相反的顺序匹配的,所以你的路线应该是可行的(我认为)。对于任何与“SaveSpidence”、“addEpisode”、“save”或“add”不匹配的内容,都应通过“showpage”路径
我唯一能想到的另一件事是使“showpage”路线更加具体,比如
'show/page/:title'
您可以使用正则表达式拒绝add、save、addEpisode和SaveSession
$router->addRoute(
'showpage',
new Zend_Controller_Router_Route(
'/show/:title',
array(
'controller' => 'show',
'action' => 'page'
),
array(
'title' => '(?:(?!add)(?!save)(?!addEpisode)(?!saveEpisode).)+'
)
)
)
您可以使用正则表达式拒绝add、save、addEpisode和SaveSession
$router->addRoute(
'showpage',
new Zend_Controller_Router_Route(
'/show/:title',
array(
'controller' => 'show',
'action' => 'page'
),
array(
'title' => '(?:(?!add)(?!save)(?!addEpisode)(?!saveEpisode).)+'
)
)
)