我正在尝试制作一个可以响应此结构的路由器:
module/controller/action/id
和module/controller/action/page
唯一的区别是“id”或“page”。我正在使用这段代码:
$routeAdmin = new Zend_Controller_Router_Route(
'administrador/:controller/:action/:id/:pg',
array(
'module' => 'administrador',
'controller' => 'index',
'action' => 'index',
'id' => 0,
'pg' => 1
),
array(
'id' => '\d+',
'pg' => '\d+'
)
);
$router->addRoute('administrador', $routeAdmin);
问题是在某些情况下我想要:
'http://www.domain.cl/administrador/productos/2' => (module=>administrador, controller=>productos,page=>2)
但是路由器“管理员”导致'http://www.domain.cl/administrador/productos/index/0/2' (module=>administrador, controller=>productos,action=>index,id=>0,page=>2)
我对它在这种情况下的工作方式感到非常困惑。我试图制作两个路由器,其中第一个只有“id”参数和另一个“页面”参数。并从 url helper 使用它,如:
$this->url(array('module' => 'administrador', 'controller' => 'productos', 'action' => 'index', 'id' => 0), 'administradorId');
$this->url(array('module' => 'administrador', 'controller' => 'productos', 'action' => 'index', 'page' => 1), 'administradorPg');
但是当我使用路由器时,总是选择最后一个添加到路由器($router->addRoute('routerIdentifier', $route);
)
谢谢