我正在尝试更改当前的布局,以便通过AJAX请求控制器内容,而不是在用户每次单击菜单中的任何一项时重新加载页面。长话短说:我需要从另一个控制器加载一个控制器。假设我有一个名为AjaxController.php的控制器,它将接收需要通过POST呈现的控制器和操作,并且需要返回请求的控制器HTML响应,而不是布局。
现在我在控制器上只有以下代码:
class AjaxhelperController extends Default_Model_Views_Basic
{
protected $_redirector = null;
public function init()
{
$this->_redirector = $this->_helper->getHelper('Redirector');
}
public function indexAction() {
$valor = $this->_request->getParam('valor');
$this->disableLayout();
$this->_helper->viewRenderer->setNoRender();
$this->_redirector->gotoUrl('http://desarrollo.techmaker.net/eloy/svn/eplanv30/public/demo_eplan_profesional/gestordocumental/gestordocumental');
}
} 问题是它重定向到页面,但加载完整的布局,我需要加载它没有布局。有什么方法可以做到这一点,而不需要改变每个控制器的逻辑吗?
发布于 2015-08-03 16:35:11
要从当前控制器呈现另一个控制器而不重新加载页面,可以使用_forward()方法:
_forward($action,$controller = null,$module = null,数组$params = null):执行另一个操作。
它将从另一个控制器运行另一个操作。查看有关:http://framework.zend.com/manual/1.12/en/zend.controller.action.html的详细信息
https://stackoverflow.com/questions/31782386
复制相似问题