Php 重定向到控制器中的其他视图
这是我的Zend Framework目录结构(仅包括您需要的内容): 在Php 重定向到控制器中的其他视图,php,zend-framework,zend-framework-mvc,Php,Zend Framework,Zend Framework Mvc,这是我的Zend Framework目录结构(仅包括您需要的内容): 在IndexController中,我想自动将它们重定向到主视图 我如何做到这一点 这就是我迄今为止所尝试的: header('/application/views/home'); 我想重定向到一个完全不同的视图和控制器。同一控制器中没有不同的操作。如果要在当前操作中呈现另一个操作,可以通过以下方式在操作中呈现: $this->render('actionName'); 或者,显式设置要渲染的模板 $this->
IndexController
中,我想自动将它们重定向到主视图
我如何做到这一点
这就是我迄今为止所尝试的:
header('/application/views/home');
我想重定向到一个完全不同的视图和控制器。同一控制器中没有不同的操作。如果要在当前操作中呈现另一个操作,可以通过以下方式在操作中呈现:
$this->render('actionName');
或者,显式设置要渲染的模板
$this->renderScript('path/to/viewscript.phtml');
更新:再次阅读您的问题,我想您希望使用
\u向前($action,$controller=null,$module=null,array$params=null):
执行另一个操作。如果在preDispatch()中调用,则将跳过当前请求的操作以支持新操作。否则,在处理当前操作后,将执行_forward()中请求的操作
或
\u重定向($url,array$options=array()):
重定向到另一个位置。此方法采用URL和一组可选选项。默认情况下,它执行HTTP 302重定向
请参见此问题。您有一些选择:
使用_重定向操作(非常常见)
或者使用_forward操作只执行请求的操作,而不实际重定向
public function indexAction() {
$this->_forward('index', 'home');
}
您可以使用动作助手,类似于_redirect,但有更多选项
public function indexAction() {
$this->getHelper('Redirector')->gotoSimple('index','home');
}
这篇关于介绍了控制器内部重定向的基本知识,如果您想从/idex/index
实际渲染home/index.phtml
,可以使用
我会让你解开这些秘密。我认为路由是你需要的,我想重定向到一个不同的视图和控制器。不是同一控制器内的操作
public function indexAction() {
$this->_forward('index', 'home');
}
public function indexAction() {
$this->getHelper('Redirector')->gotoSimple('index','home');
}