【发布时间】:2012-04-25 07:29:12
【问题描述】:
我一直在努力解决路由问题,因此构建了一个小应用程序来摆弄,但我设法偶然发现了一个问题。
整个测试的目标是隐藏 url 'hostname/content/index/add' 并将其变成更易于用户理解的 url,例如 'hostname/wms/content/add'。
但现在由于某些奇怪的原因,我无法使用 $this->url() 方法进行重定向。但不知何故,像 somelink 这样的正常链接可以正常工作。
我在 application.ini 中构建了一些路由来测试它是如何工作的。没什么好看的……
resources.router.routes.contentroute.route = "/wms/content"
resources.router.routes.contentroute.defaults.module = content
resources.router.routes.contentroute.defaults.controller = index
resources.router.routes.contentroute.defaults.action = index
resources.router.routes.vacaturesroute.route = "/wms/vacatures"
resources.router.routes.vacaturesroute.defaults.module = vacatures
resources.router.routes.vacaturesroute.defaults.controller = index
resources.router.routes.vacaturesroute.defaults.action = index
所以当我输入主机名/wms/content 时,我会被重定向到内容模块的 IndexController,它是 IndexAction。这适用于我的视图中指向这样的内容模块的所有链接
<a href='wms/content/'> link </a>
但是,它不适用于 3 个链接,这些链接实际上重定向到该页面主机名/wms/内容上的 IndexController 的特定操作。
<a href="<?php echo $this->url(array('controller'=>'index','action'=>'add'));?>">Add new content</a>
我并没有真正重定向到 IndexController 中的添加操作,而是重定向到主机名/wms/内容,这就是我来自的页面。
有人知道为什么会发生这种情况并可能有解决方法吗?还是我完全走错了路?
【问题讨论】:
标签: zend-framework redirect routing