如何在zf2中的控制器中禁用全局视图/布局对象?

时间:2013-01-14 23:35:10

标签: zend-framework2

我正在使用ZF 2.0.6并且我知道以下禁用视图的技巧,但它保留了其他全局视图/布局。我也知道有一个setContent方法可以破坏我不需要的一切。 那么如何在控制器中禁用全局视图/布局对象?

仅停用视图

$viewModel = new ViewModel(array());
$viewModel->setTerminal(true);
return $viewModel;

Clobber回复

return $this->getResponse()->setContent('Nooooooooo!');

在Module bootstrap和dispatch事件中设置布局时似乎存在问题。

1 个答案:

答案 0 :(得分:0)

我选择了clobber方法并传递了一个新的视图模型。这似乎有效,但必须有一个更优雅的方法。

控制器

use Zend\View\Model\ViewModel;
use Module\Form\Form;

....

public function createAction()
{
    $viewRenderer = $this->getServiceLocator()->get('viewrenderer');
    $viewModel = new ViewModel();
    $viewModel->setTemplate('module/controller/action')
              ->setVariables(array('form' => new Form()));
    return $this->getResponse()
                ->setContent($viewRenderer->render($viewModel));
}