我一直试图绕过路由,因为这个原因建立一个小应用程序来摆弄,但我设法偶然发现一个问题。Zend Framework重定向和路由,不知何故无法正常工作
整个测试的目标是隐藏网址'hostname/content/index/add',并将其变成一个对于像'hostname/wms/content/add'这样的用户更容易理解的url。
但现在由于一些奇怪的原因,我不能使用$ 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 /内容我重定向到内容模块的IndexController,它的的indexAction。这对所有在我的观点,即指向的内容模块,这样
但是它不适合3个环节的工作环节,实际上对索引控制器的一个具体行动重定向工作正常,那很页面主机名/ WMS /内容。
<a href="<?php echo $this->url(array('controller'=>'index','action'=>'add'));?>">Add new content</a>
而不是对在索引控制器的附加动作我重定向到主机名/ WMS /内容实际上重定向,至极的是我正在添加从页面。
任何人都有一个想法,为什么发生这种情况,并可能有办法解决这个问题?或者我完全接近这个错误的方式?
非常感谢!这确实解决了这个问题。我不知道需要向路由添加“/:action/*”,或者需要指定路由本身。 – 2012-04-25 14:58:02