2010-11-26 3 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/ 존재하지 않습니다.

동일한 홈페이지 렌더링을 얻습니다.

이러한 동작의 원인은 무엇일까요?

젠드 신참이 직접 (어쨌든 해결 한 것 같다있는) 귀하의 질문에 대답하지 않을 수 있지만, 레이아웃을 사용하지 않고 AJAX 요청에 대한 다른 시각을 제공의 AjaxContext를 사용하는 것을 고려

+0

뭔가? 더 자세한 정보를 제공해야합니까? 나는 무언가를 말하는거야? 저에게 알려주세요. 여기에 갇혀있어. – MEM

+0

문제를 구체적으로 설명해 주시겠습니까? 레이아웃을 비활성화 하시겠습니까? 아니면 작업이 없을 때 홈페이지로 리디렉션 하시겠습니까? – Nedec

+0

감사합니다. 아니요. 작업이 없어도 레이아웃을 비활성화하거나 홈페이지로 리디렉션하고 싶지 않습니다. 내가 원하는 것은, 우리가 할 때 : http://www.mysite.com/equipas/lista/ (그래서, 우리가 action lista라고 부를 때) 레이아웃은 사용되지 않는다. 왜? ajax는 예를 들어 호출합니다. 감사. – MEM

답변

5

MEM 행동 도우미.

+0

일부 딥 링크 문제를 해결하는 데 도움이 될까요? – MEM

20

컨트롤러 내부에이 추가 :

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

zf2에 내 질문에 잘못

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