Zend Navigation Uri和BaseUrl

时间:2012-02-16 17:51:07

标签: zend-framework zend-view zend-navigation view-helpers

我正在我的网站上设置zend导航,我在本地开发时遇到了问题。

我的navigation.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
 <nav>
    <page1>
        <label>Site</label>
        <uri>/</uri>
        <pages>
            <page1_1>
                <label>Home</label>
                <uri>/</uri>
            </page1_1>
            <page1_2>
                <label>Contact</label>
                <uri>/contact</uri>
            </page1_2>
        </pages>
    </page1>
  </nav>
</config>

渲染菜单

<?=$this->navigation()->menu();?>

HTML输出

<ul class="navigation">
 <li class="active">
    <a href="/">Site</a>
    <ul>
        <li>
            <a href="/">Home</a>
        </li>
        <li class="active">
            <a href="/contact">Contact</a>
        </li>
    </ul>
 </li>

我在子文件夹:http://localhost/project/public中开发项目。并且zend navigation uri将链接显示为http://localhost/contact

http://localhost/project/public/contact

我如何将我的baseUrl应用于uri?

2 个答案:

答案 0 :(得分:1)

您可以在xml文件中指定整个路线:

    <home>
        <label>Home</label>    
        <route>home</route>
        <module>default</module>
        <controller>index</controller>
        <action>index</action>
    </home>

这是一个命名路由,也是由模块,控制器,操作指定的。

答案 1 :(得分:0)

如果您使用生成网址的标准方式,则可以在生成网址之前设置基本网址,如此处所述。

http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.rewritebase

$request->setBaseUrl('/project/public/');