Zend - как отключить макет для данного действия?

У меня есть следующий контроллер, который среди других методов имеет следующий:

class EquipasController extends OccControllerAction {

    public function listaAction()
    {    
        $this->_helper->viewRenderer->setNoRender(true);
        $this->_helper->layout->disableLayout();
    }
}

Я ожидал, что когда я это сделаю: http://www.example.com/equipas/lista/

контроллер выполнит, и я не увижу рендеринга макета в моем окне просмотра.

Однако это не так. Я получаю мою домашнюю страницу.

Где в ZF мы обычно говорим: если действие не существует, должна появиться домашняя страница?

Примечание: Если вместо: http://www.example.com/equipas/lista/

Я делаю, http://www.example.com/equipas/adasdas21232131/ что не существует.

Я получаю тот же рендеринг домашней страницы.

Что может быть причиной такого поведения?

A Zend Newbie, MEM

Ответы

Ответ 1

Это может не ответить на ваш вопрос напрямую (что вы, похоже, решили в любом случае), но чтобы отключить макет и предоставить другое представление для запросов AJAX, подумайте об использовании AjaxContext помощник действий.

Ответ 2

Добавьте это внутри своего контроллера:

public function preDispatch(){
        $this->_helper->layout()->disableLayout(); 
        $this->_helper->viewRenderer->setNoRender(true);
    }

Ответ 3

в zf2

 public function indexAction()
    {    
        echo "json"
        return $this->getResponse();
    }