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 に答える