По умолчанию SocialENgine автоматически отображает представление в конце каждого действия контроллера. Если вы используете макет, он также отображает это. Это нормально для обычных веб-страниц, но когда вы отправляете ответ AJAX, вы не хотите этого. Как вы предотвращаете SocialEngine от автоматического рендеринга по принципу действия? С ZendFramework, вы можете сделать это:Предотвращение создания социальных сетей (для AJAX)
$this->_helper->layout->disableLayout();
$this->_helper->viewRenderer->setNoRender(TRUE);
И у вас есть доступ к некоторым хорошим помощникам, как:
$this->_helper->json($data);
... который будет json_encode ваших $ данных, вывод его с заголовками JSON и умереть последний, поэтому получение чистого JSON возвращается из действия без рендеринга представления, что в значительной степени является именно тем, что я хочу.
Однако ни одно из этих решений не работает в SocialEngine - $ this -> _ helper всегда кажется пустым массивом, как и $ this-> view -> _ helper. И вернуть $ this-> setNoRender() только предотвращает рендеринг текущего элемента, а не всю страницу.