Zend Route会覆盖当前页面中存在的所有URL

时间:2011-11-29 17:25:27

标签: zend-framework zend-route

我在我的项目中使用Zend Router,规则是这样的;

<projects type="Zend_Controller_Router_Route_Regex">
            <route>project/(\d+)/(.+)</route>
            <defaults>
                <controller>project</controller>
                <action>view</action>
            </defaults>
            <map>
                <projectid>1</projectid>
            </map>
            <reverse>project/%d/%s</reverse>
        </projects>

当我低于url时;

http://mydomain/project/1/project_name

此页面上存在的所有网址都替换为上面的网址。例如,此页面中有一个链接用于向项目所有者发送消息。当我将鼠标悬停在该链接上时,我看到该网址如上所定义。消息发送网址就像这样创建;

<a href="<?=$this->baseUrl()?>/misc/sendmessage">Send Message</a>

如上所示,我正在使用url helper,而baseUrl的内容只是从appliation.ini文件中获取名为“baseUrl”的关键字。

你遇到过这样的问题吗?

提前致谢

KR 侯赛因

2 个答案:

答案 0 :(得分:0)

我不完全理解你的问题

如何在applicaiton.ini文件中设置baseUrl值?它应该是这样的:

resources.frontController.baseUrl = "baseUrl"

使用基本网址视图帮助程序似乎不是您的案例的最佳选择。你为什么不使用url view helper?

url($urlOptions, $name, $reset);

答案 1 :(得分:0)

我向导航中的所有页面添加了“<route>default</route>”。此默认路由必须添加到每个页面的导航xml中。问题已修复

当前navigation.xml:

......
<settings>
   <label>Settings</label>
   <title>Settings</title>
   <resource>edit</resource>
   <privilege>edit</privilege>
   <controller>experts</controller>
   <action>edit</action>
</settings>
......

更新了导航xml:

......
<settings>
   <label>Settings</label>
   <title>Settings</title>
   <resource>edit</resource>
   <privilege>edit</privilege>
   <controller>experts</controller>
   <action>edit</action>
   <route>default</route>
</settings>
......

由于