我可以渲染视图而不在 Zend 框架 2 的动作控制器中返回它吗? [英] Can I render view without returning it in action controller in zend framework 2?

查看:26
本文介绍了我可以渲染视图而不在 Zend 框架 2 的动作控制器中返回它吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

现在我这样做了:

public function indexAction() {
    ...
    $view = new ViewModel(array(
        'foo' => 'bar',
    ));
    return $view;
}

问题是我想在 $view 渲染之后和布局渲染之前做一些事情:

The problem is that I want to do something after $view rendering and before layout rendering:

public function indexAction() {
    ...
    $view = new ViewModel(array(
        'foo' => 'bar',
    ));
    $layout = $this->layout();

    $layout->content = $view->render();
    ...
    // here I want to do some important action
    ...
    $html = $layout->render();
    return $this->getResponse()->setContent($html);    
}

但是没有方法render().在 ZF1 中,我可以渲染视图:

But there is no method render(). In ZF1 I could render view:

$view = new Zend_View($data);
$html = $view->render($templateName);

我如何在 ZF2 中做到这一点?

How can I do that in ZF2?

推荐答案

试试这个:

public function IndexAction()
{
    ...
    $viewRender = $this->getServiceLocator()->get('ViewRenderer');
    $html = $viewRender->render($viewModel);
    ...
}

这篇关于我可以渲染视图而不在 Zend 框架 2 的动作控制器中返回它吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆