Zend Navigation - URL 配置问题

发布于 2024-09-25 06:45:18 字数 1062 浏览 8 评论 0原文

我将导航内容存储在项目 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

若相惜即相离 2024-10-02 06:45:18

如果您将默认模块设置为默认模块,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 /.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文