Zend Navigation - URL 配置问题
我将导航内容存储在项目 configs 文件夹中的 navigation.xml 文件中。
基本上我有两个模块,默认模块处理身份验证和基本页面使用,管理模块用于管理网站。
当我以管理员身份登录时,会根据我的 acl 和 navigation.xml 出现一个特殊的管理导航,导航元素如下所示:
<ticket>
<label>Tickets</label>
<resource>admin:ticket</resource>
<module>admin</module>
<controller>ticket</controller>
<action>payticket</action>
<privilege>ticket</privilege>
</ticket>
但当我以管理员身份登录时,我的网站 URL 出现了一个大问题。我很晚才开发管理模块,因此默认模块的 url 看起来像这样:
$this->url(array('controller' => 'index', 'action' => 'contact'))
所以我省略了 'module' => 'default' 因为我不希望 /default/ 出现在浏览器地址栏中。
当我访问管理站点(例如 mysite.de/admin/ticket)时,页面上通常指向默认模块的所有 url 现在都指向管理模块,并且当我访问它们时收到错误请求。
$this->url(array('controller' => 'index', 'action' => 'contact'))
通常会创建 mysite.de/index/contact,但在管理页面上它会变成 mysite.de/admin/index/contact。
我是否必须调整所有链接并添加模块信息还是有其他解决方案?
I store my navigation content in a navigation.xml file in the configs folder of my project.
Basically I have two modules, the default module that deals with e.g. authentication and basic page usage and the admin module to admininstrate the website.
When I sign in as admin a special admin navigation appears according to my acl and navigation.xml, a navigation element looks like that:
<ticket>
<label>Tickets</label>
<resource>admin:ticket</resource>
<module>admin</module>
<controller>ticket</controller>
<action>payticket</action>
<privilege>ticket</privilege>
</ticket>
But I have a big Problem with the URL's of my website when I am logged in as admin. I developed my admin module quite late so the url's of the default module look like that:
$this->url(array('controller' => 'index', 'action' => 'contact'))
So I left out the 'module' => 'default' since I do not want the /default/ to appear in the browsers url bar.
When I visit a admin site, e.g. mysite.de/admin/ticket, all url's on my page that normally would point to default module now point to admin module and I get a bad request when I visit them.
$this->url(array('controller' => 'index', 'action' => 'contact'))
normally creates mysite.de/index/contact but on an admin page It becomes mysite.de/admin/index/contact.
Do I have to adjust all links and add the module information or is there another solution?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您将默认模块设置为默认模块,Zend 不会将其包含在您的 URL 中,因为它是默认模块。
例如构建以下内容:
- 控制器:索引
- 动作:索引
- module: default
将导致 URL 仅为 /。
If you pasa default as your model, Zend won't include it in your URL, lince it's the default module.
For example buulding the following:
- controller: index
- action: index
- module: default
Will result in a URL of just /.