ZF错误的路由重写

时间:2012-01-25 17:54:28

标签: php zend-framework url zend-route

我的layout.phtml中有2个链接和bootstrap中的路径:

1. Link:
echo $this->url(array('controller' => 'aktuelles', 'action' => 'index'), null, true );
// creates: http://localhost/aktuelles

2: Link
echo $this->url(array('controller' => 'projekte', 'action' => 'wohnen', 'projektId' => 26), 'projekte-galeria', false);
// creates: http://localhost/projekte/wohnen/26

Route:
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(  'projekte/wohnen/:projektId', 
                                            array(  
                                                    'module' => 'web',
                                                    'controller' => 'projekte',
                                                    'action' => 'wohnen',
                                                    'projektId' => null)
                                            );                  
$router->addRoute(  'projekte-galeria', $route); 

当我加载页面时,一切都正确显示,网址都是正确的。

问题:只要点击第二个链接(http:// localhost / projekte / wohnen / 26),第一个链接就会改变:

来自:localhost / aktuelles

to:localhost / projekte / wohnen

为什么链接发生了变化?

2 个答案:

答案 0 :(得分:2)

尝试强制使用默认路由:而不是null使用'default'作为第一个网址中的第二个参数。

BTW - 第二个网址中的'controller' => 'projekte', 'action' => 'wohnen'部分是多余的,因为您在路由中预定义了这些参数。第二个链接可以像这样简化:

echo $this->url(array('projektId' => 26), 'projekte-galeria', false);

答案 1 :(得分:0)

将此解决方案作为处理路由Simple rewrites in Zend Framework

的替代方法