如何在Zend Framework 2.x中禁用布局和视图渲染器?我阅读了文档,但在Google中找不到任何答案。我找到了Zend 1.x的答案,它是
$this->_helper->viewRenderer->setNoRender(true);
$this->_helper->layout->disableLayout();
但是它在Zend Framework 2.x中不再起作用。我需要为Ajax请求禁用视图渲染器和布局。
任何帮助将是巨大的。
只需setTerminal(true)
在您的控制器中使用即可禁用布局。
此行为记录在这里:Zend View快速入门::处理布局
例子:
<?php
namespace YourApp\Controller;
use Zend\View\Model\ViewModel;
class FooController extends AbstractActionController
{
public function fooAction()
{
$viewModel = new ViewModel();
$viewModel->setVariables(array('key' => 'value'))
->setTerminal(true);
return $viewModel;
}
}
如果要发送JSON响应而不是呈现.phtml文件,请尝试使用JsonRenderer:
将此行添加到类的顶部:
use Zend\View\Model\JsonModel;
这是一个返回JSON的操作示例:
public function jsonAction()
{
$data = ['Foo' => 'Bar', 'Baz' => 'Test'];
return new JsonModel($data);
}
编辑:
不要忘记添加ViewJsonStrategy
到module.config.php
文件中以允许控制器返回JSON。谢谢@Remi!
'view_manager' => [
'strategies' => [
'ViewJsonStrategy'
],
],
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句