修复Zend_Route以使用Zend_Navigation

时间:2011-12-08 15:47:49

标签: zend-framework 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创建了错误的网址。 所以当我输入网址时 http://localhost/zf/public/en Zend_Navigation生成的网址仍然如此 http://localhost/zf/public/de/index/

希望任何人都有一些想法:)

1 个答案:

答案 0 :(得分:1)

您必须添加要用于在Xml配置中创建正确URL的路由:

<?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指定的相同关键字。