Создание пользовательского объекта ответа JSON с помощью Zend Action Helper ContextSwitch
обычно я добавляю закодированный объект json в тело ответа, однако теперь у меня есть ситуация, которая гарантирует использование помощника действия ContextSwitch.
У меня есть Zend_Form, который требует трех разных контекстов ответа:
- HTML-код - визуализация формы как обычный html в пределах макета.
- HTML-код-частичный - запрос ajax "get", который отображает просто форма как html.
- в JSON - "Аякс" запрос "post", который возвращает любые сообщения об ошибках valiation формы.
для каждого контекста у меня есть 3 скрипта просмотра. Хотя два контекста html могут использовать один и тот же сценарий представления, но я не понял, возможно ли это.
- форма.phtml, который
- форма.формат html.phtml, который
- форма.формат JSON.phtml, который
представления контекста html работают нормально, но представление json не подбирается. Каков наилучший метод переопределить поведение обратного вызова JSON post по умолчанию или передать пользовательский закодированный объект в тело ответа?
2 ответов
лично я не использую "View" для создания контента JSON.
В моем init()
, у меня что-то вроде этого:
$ajaxContext = $this->_helper->getHelper('AjaxContext');
$ajaxContext->setAutoJsonSerialization(false)
->addActionContext('index', array('html', 'json'))
->initContext();
и в моем indexAction()
:
if ( true === $this->isAjaxJson() ) {
$this->_helper->json(
array(
'response' => $myResponse,
'message' => $myMesage
)
);
return;
}
надеюсь, что это поможет.
это может помочь :
$this->_helper->json->sendJson($data);
пока,
$data=array('data1'=>'val1','data2'=>'val2');