Как отключить представление рендерера из помощника действий контроллера?

В контроллере я могу вызвать помощника viewRenderer следующим образом:

$this->_helper->viewRenderer->setNoRender(true);

Как я могу вызвать viewRenderer в помощнике действий контроллера? Предположим, что у меня есть помощник действий контроллера:

class Zend_Controller_Action_Helper_Ajaxrequest extends Zend_Controller_Action_Helper_Abstract{

   public function test(){
       //what I should do here
   }
}

1 ответ

Решение

viewRenderer в вашем примере это на самом деле помощник действия, а не помощник вида.

Чтобы вызвать помощников действий, используйте вспомогательный брокер:

$helper = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
$helper->setNoRender(true);

Если вы действительно хотите вызвать помощников вида, вам нужен экземпляр вида. Вы можете получить один из контроллера:

$controller = $this->getActionController();

//call the url view helper
$controller->view->url(...);
Другие вопросы по тегам