Zend Navigation Uri and BaseUrl



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

我的导航.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导航uri将链接显示为http://localhost/contact已安装,共http://localhost/project/public/contact

如何将我的baseUrl应用于uri?

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

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

这是一个命名的路由以及由模块、控制器和操作指定的路由。

如果您使用的是生成url的标准方式,您可以在生成url之前设置基本url,如下所述。

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

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

最新更新