因此,我一直在尽我最大的努力吸收尽可能多的关于Zend框架的知识,这对我来说是相当新的,自从我第一次尝试以来,我已经有大约两周的时间了,到目前为止,我做得很好。
然而,我遇到了一个小问题,我就是搞不清楚。
事情是这样的,我有一个标准的Zend Framework项目,里面有很多模块。如下所示:
- Project
- - Application
- - - configs
- - - controllers
- - - - IndexController
- - - - WMSController
- - - forms
- - - layouts
- - - models
- - - modules
- - - - content
- - - - - controllers
- - - - - - IndexController
- - - - - models
- - - - - views
- - - - - Bootstrap
- - - views
- - - bootstrap
- - public
etc..现在,我在WMSController的视图中设置了一个简单的测试链接,该链接应该将点击它的人定向到内容模块的IndexController。
<a href="wms/content"> test link to content module</a>现在,正如您可能看到的那样,这个链接将不起作用,因为它指向本地主机/wms/ content,这将是WMSController中的内容操作,目前还不存在。
现在我想要做的是让wms/content实际上指向content模块的IndexController。为什么?我只是不希望用户输入localhost/content来访问内容模块,该模块是WMS的一部分。我想让他们先通过WMS控制器。
我读过很多关于路由是使用bootstrap或autoloader的解决方案的东西,但几乎所有的东西都只是帮助你将特定的url指向特定控制器中的特定操作。
我想要的是一个指向特定模块中特定控制器中的特定操作的url。
注意:所有其他控制器和视图仍然是默认生成的版本,没有对它们进行任何更改!
如果有人能向我展示一个如何做到这一点的代码示例,将不胜感激!
发布于 2012-04-19 17:38:24
如果我理解正确的话,您只是希望/wms/content指向模块content控制器索引操作索引。这是一种简单的路由器可以工作的情况(至少在你想变得更复杂之前是这样)
在您的application.ini中添加以下行:
resources.router.routes.content.route = "wms/content"
resources.router.routes.content.defaults.module = "content"
resources.router.routes.content.defaults.controller = "index"
resources.router.routes.content.defaults.action = "index"这是构建自定义路由的最简单方法。
*注意:*左数第四个参数是路由的名称,因此如果您将其与允许使用路由名称的方法(例如url() helper )一起使用,则可以只使用路由名称。
$this->url(array(), 'content');
这就是如何使用命名路由,我个人可能会考虑将我的模块重命名为wms (如果可能和实用的话),并从默认的Index控制器重定向到那里。因为一旦你开始使用指定的和自定义的路由,就很难退出...
发布于 2012-04-18 22:25:40
从你的问题来看你
想要强迫他们先通过WMS控制器。
你可以做一件事。无论您想在WMSController中做什么,只要用户输入localhost/content/**,您就可以将它放在模块中所有控制器的父类中:'CONTENT‘。通过这种方式,您可以在每次请求到达此控制器时检查/执行操作(无论用户是否想要转到其他模块)。
类Content_AnyController扩展了MyControllers_Controller_Action_Admin{ ....}
哪里
class Reviewmo_Controller_Action extends Zend_Controller_Action{
public function init(){
//Things you want to do each time
}
}这就是我认为您想要实现的目标,因为如果您只想简单地重定向到WMSController的ContentAction,您可以简单地重定向到那个控制器。
https://stackoverflow.com/questions/10209855
复制相似问题