Ответ 1
Просто используйте setTerminal(true)
в вашем контроллере, чтобы отключить макет.
Это описано здесь: Zend View Quick Start:: Работа с макетами
Пример:
<?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);
}
EDIT:
Не забудьте добавить ViewJsonStrategy
в ваш module.config.php
файл, чтобы позволить контроллерам возвращать JSON. Спасибо @Remi!
'view_manager' => [
'strategies' => [
'ViewJsonStrategy'
],
],