Исправление Zend_Route для работы с Zend_Navigation

Итак, у меня есть Zend_Route в моем приложении, например:

public function _initRoutes() {
    $front  = Zend_Controller_Front::getInstance();
    $router = $front->getRouter();
    $route  = new Zend_Controller_Router_Route(':language/:controller/:action/*',
                                                array(
                                                    'language'  => 'de',
                                                    'controller'=> 'index',
                                                    'action'    => 'index'
                                                ),
                                                array(
                                                    'language'  => '[a-z]{2}'
                                                ));

    $router->addRoute('lang_route', $route);
}

и мой xml

<?xml version="1.0" encoding="UTF-8" ?>
<configdate>
<nav>
    <home>
        <label>Home</label>
        <controller>index</controller>
        <action>index</action>
        <pages>
            <my_account>
                <label>Galery</label>
                <controller>index</controller>
                <action>list</action>
            </my_account>
        </pages>
    </home>
    <login>
        <label>Login</label>
        <controller>login</controller>
        <action>index</action>
    </login>
</nav>
</configdate>

Моя проблема в том, что Zend_Navigation создает неправильные URL-адреса. Поэтому, когда я ввожу URL-адрес http://localhost/zf/public/en, URL-адреса, сгенерированные Zend_Navigation, по-прежнему выглядит как http://localhost/zf/public/de/index/

Надеюсь, у кого-нибудь есть идеи :)


person phil    schedule 08.12.2011    source источник
comment
URL-адреса автоматически генерируются Zend_Navigation. Когда я использую помощник $this-›url() в представлении, генерируется правильный URL.   -  person phil    schedule 08.12.2011
comment
Конечно, но как вы это называете?   -  person Aurelio De Rosa    schedule 08.12.2011


Ответы (1)


Вы должны добавить маршрут, который вы хотите использовать для создания правильного URL-адреса, в вашей конфигурации Xml:

<?xml version="1.0" encoding="UTF-8" ?>
<configdate>
<nav>
    <home>
        <label>Home</label>
        <controller>index</controller>
        <action>index</action>
        <route>lang_route</route>
    </home>
</nav>
</configdate>

В конфигурации XML вы можете использовать те же ключевые слова, что и для Zend_Navigation_Page_Mvc.

person ByteNudger    schedule 05.02.2012