2010-11-26 5 views
15

У меня есть следующий контроллер, который, наряду с другими методами он имеет это один: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/ , что не существует.

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

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

Zend Новичок, MEM

+0

Что-то не так с моим вопросом? Должен ли я предоставить более подробную информацию? Я говорю что-то фиктивное? Пожалуйста, дайте мне знать. Застрял здесь. – MEM 2010-11-26 19:17:47

+0

Не могли бы вы указать вашу проблему? Вы хотите отключить макет или хотите перенаправить на главную страницу, если действие не существует? – Nedec 2010-11-26 19:50:40

ответ

5

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

20

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

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

в ZF2

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

 Смежные вопросы

  • Нет связанных вопросов^_^