Zend 1 - 从控制器

时间:2015-08-03 08:11:02

标签: php ajax zend-framework controller frameworks

我正在尝试更改当前布局,以便通过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');
    }
} 

问题是它重定向到页面但加载完整的布局,我需要在没有布局的情况下加载它。有没有办法这样做而无需更改每个控制器逻辑?

1 个答案:

答案 0 :(得分:1)

要从当前控制器渲染另一个控制器而不重新加载页面,可以使用_forward()方法:

_forward($ action,$ controller = null,$ module = null,array $ params = null):执行另一个操作。

它将从另一个控制器运行另一个动作。详情请见: http://framework.zend.com/manual/1.12/en/zend.controller.action.html