2012-08-12 1 views
1

에서 다른보기로 리디렉션 (단지 당신이 필요한 사항 포함) 다음 IndexController에서컨트롤러이 내 젠드 프레임 워크 디렉토리 구조입니다

-Controllers 
    -HomeController.php 
    -IndexController.php 
-Views 
    -scripts 
     -home 
      -index.phtml 
     -index 
      -index.phtml 

내가 자동으로 홈보기로 리디렉션하고 싶습니다.

어떻게해야합니까?

header('/application/views/home'); 

내가 완전히 다른보기와 컨트롤러로 재 지정하려면 :

이것은 내가 지금까지 시도한 것입니다. 동일한 컨트롤러 내에서 다른 작업이 아닙니다.

+0

라우팅이 필요하다고 생각합니다. http://framework.zend.com/manual/en/zend.controller.router.html – MilMike

답변

2

당신은 몇 가지 옵션이 있습니다

액션 도우미 redirector은 _redirect와 유사하지만 더 많은 옵션이 있습니다. 당신이 실제로 /idex/index에서 home/index.phtml 당신이 viewrenderer action helper를 사용할 수 렌더링하려면

public function indexAction() { 
      $this->getHelper('Redirector')->gotoSimple('index','home'); 
     } 

이 약은 컨트롤러의 내부 리디렉션의 기본 사항을 다룹니다.

나는 그 비밀을 풀어 줄 것이다.

1

당신은 당신의 행동에서 다음과 같은 방법으로 가능하다 현재의 액션 안에 다른 조치를 렌더링 할 경우

$this->render('actionName'); 

또는 명시 적으로 렌더링 할 템플릿을 설정

$this->renderScript('path/to/viewscript.phtml'); 

UPDATE : 귀하의 질문을 다시 읽으십시오. 사용하고 싶습니다.

_forward($action, $controller = null, $module = null, array $params = null): 다른 작업을 수행하십시오. preDispatch()에서 호출 된 경우 현재 요청 된 작업은 건너 뜁니다. 그렇지 않으면 현재 작업이 처리 된 후 _forward()에서 요청 된 작업이 실행됩니다.

또는

_redirect($url, array $options = array()):

다른 위치로 리디렉션. 이 메소드는 URL과 선택적 옵션 세트를 사용합니다. 기본적으로 HTTP 302 리디렉션을 수행합니다.

이 질문에 대해서는 documentation을 참조하십시오.

가 (매우 일반적인)을 _redirect 액션 utility method

public function indexAction() { 
    $this->_redirect('/application/views/home'); 
} 

를 사용하거나 실제로

public function indexAction() { 
     $this->_forward('index', 'home'); 
    } 
을 리디렉션하지 않고 요청 된 동작을 실행합니다 _forward 액션 utility method를 사용
+0

다른 뷰와 컨트롤러로 리디렉션하고 싶습니다. 같은 컨트롤러 내의 동작이 아님 – RSM

+0

@RyanMurphy, 업데이트. –