it-swarm.com.ru

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

15
MEM

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

5
Phil

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

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

в zf2 

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