Zend framework Zend framework不关心指定的自定义路由

Zend framework Zend framework不关心指定的自定义路由,zend-framework,zend-route,zend-router,Zend Framework,Zend Route,Zend Router,我创建了一个路由器,并像这样添加到控制器中 public function _initRouting() { // Get Front Controller Instance $front = Zend_Controller_Front::getInstance(); // Get Router $router = $front -> getRouter(); $routePage = new Zend_Co

我创建了一个路由器,并像这样添加到控制器中

public function _initRouting() {          
    // Get Front Controller Instance         
    $front = Zend_Controller_Front::getInstance();  
    // Get Router
    $router = $front -> getRouter();
    $routePage = new Zend_Controller_Router_Route('/page/:action/:cat/:parent/:id', array(
        'controller' => 'page',
        'action'    => 'list',
        'cat'       => 'general',
        'parent'    => '0',
        'module'    => 'default'
    ));
    $router -> addRoute('page', $routePage);
}
首先,每当我导航到这个路由器时,它什么也没做
/page/list/general/0/1
,它采用标准路由,而不是新路由。

我能想到的唯一一件事是,在使用init方法之前,前端控制器资源尚未“引导”

您至少应该引导并检索前端控制器资源

protected function _initRouting()
{
    $this->bootstrap('frontController');
    $front = $this->getResource('frontController');
    // etc
为什么不跳过创建bootstrap init方法并在应用程序配置中配置路由器资源呢

resources.router.routes.page.route = "page/:action/:cat/:parent/:id"
resources.router.routes.page.defaults.module = "default"
resources.router.routes.page.defaults.controller = "page"
resources.router.routes.page.defaults.action = "list"
resources.router.routes.page.defaults.cat = "general"
resources.router.routes.page.defaults.parent = "0"
作为测试,我添加了上面的配置,并用这个
listAction
创建了一个
PageController

public function listAction()
{
    Zend_Debug::dump($this->getRequest()->getParams());
    exit;
}
调用
page/list/general/0/1

array(6) {
  ["action"] => string(4) "list"
  ["cat"] => string(7) "general"
  ["parent"] => string(1) "0"
  ["id"] => string(1) "1"
  ["module"] => string(7) "default"
  ["controller"] => string(4) "page"
}

@mrN我无法复制您的问题(请参阅我编辑的答案)。您是否定义了其他路线?是的,我也定义了其他路线,但我给每个路线分别命名,所以我认为它们不应该这样分类。@mrN您的路线顺序很可能是问题所在。您需要按照从最小到最具体的顺序定义它们。我会检查的,但是你能帮我吗。在…上