0

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

仅禁用视图

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

破坏响应

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

在 Module 引导和调度事件中设置布局时似乎有问题。

4

1 回答 1

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));
}
于 2013-01-15T18:38:06.370 回答