ZF неверный маршрут переписать - PullRequest
0 голосов
/ 25 января 2012

У меня есть 2 ссылки в моем layout.phtml и маршрут в начальной загрузке:

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); 

Когда я загружаю страницу, все отображается правильно, и все URL-адреса верны.

Проблема: Как только я нажимаю на вторую ссылку (http://localhost/projekte/wohnen/26),, первая ссылка меняется:

от: localhost / aktuelles

to: localhost / projekte / wohnen

Почему ссылка изменилась?

Ответы [ 2 ]

2 голосов
/ 26 января 2012

Попробуйте принудительно использовать маршрут по умолчанию: вместо null используйте 'default' в качестве второго параметра в первом URL.

КСТАТИ - часть 'controller' => 'projekte', 'action' => 'wohnen' во втором URL-адресе является избыточной, потому что вы заранее определяете эти параметры в маршруте. Вторая ссылка может быть упрощена так:

echo $this->url(array('projektId' => 26), 'projekte-galeria', false);
0 голосов
/ 26 января 2012

Посмотрите на это решение как на альтернативный способ обработки маршрутов Простые изменения в Zend Framework

...