Zend Route互相覆盖

时间:2011-02-09 17:44:18

标签: zend-framework zend-paginator

编辑,由以下响应中的修复引起的轻微问题:

现在这些规则发生冲突:

    $router->addRoute('view-category',      new Zend_Controller_Router_Route(':id/category/:page',  array('module' => 'default', 'controller' => 'category', 'action' => 'view', 'page' => null)));

    $router->addRoute('management/category',    new Zend_Controller_Router_Route('management/category/',    array('module' => 'management', 'controller' => 'category', 'action' => 'index')));

所以基本上/ management / category / reset会被视图类别规则捕获,即使我切换顺序也是如此。这从来不是一个问题。

理想情况下,如果有任何捕获/管理或/管理,它将忽略:名称/类别规则。是否有可能使/管理和/管理忽略先前的规则并路由到其控制器操作,因为在这些区域中没有特定的规则。

旧问题:

$router->addRoute('view-category',      new Zend_Controller_Router_Route(':id/category',    array('module' => 'default', 'controller' => 'category', 'action' => 'view')));
$router->addRoute('view-category-page', new Zend_Controller_Router_Route(':id/category/:page',  array('module' => 'default', 'controller' => 'category', 'action' => 'view')));

这些规则发生冲突,阻止paginator处理/ category-name / category URL。

有没有把它们结合起来?

1 个答案:

答案 0 :(得分:1)

尝试为“page”参数添加默认值。

$router->addRoute('view-category', 
    new Zend_Controller_Router_Route(':id/category/:page',  
        array('module' => 'default', 
              'controller' => 'category', 
              'action' => 'view',
              'page' => null)
    )
 );