この構造に応答できる Router を作成しようとしています:
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)
しかし、ルーターの「administrador」を使用すると、'http://www.domain.cl/administrador/productos/index/0/2' (module=>administrador, controller=>productos,action=>index,id=>0,page=>2)
このような場合にどのように機能するかについて、私は非常に混乱しています。最初のルーターには「id」パラメーターのみがあり、もう1つのルーターには「ページ」パラメーターしかない2つのルーターを作成しようとしました。URL ヘルパーから次のように使用します。
$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);
)
ありがとう