2012-11-29 2 views
0

작은 수수께끼 : 내 인덱스 컨트롤러 (chartAction)와 내보기간에보기를 전달할 수 없습니다. 내가 내 localhost에 갈 때보기 phtml-에 액세스하지 않습니다. 대신 컨트롤러를 매번 보여줍니다 (예 : 내 컨트롤러에 "echo "HELLO WORLD!"";을 내 컨트롤러에 쓰면 에코됩니다 ...). 그러나 수행 할 경우 $this->view->test = "Hello World!" 색인에 액세스합니다. .phtml 및 입력하십시오 echo $this->test; 나는 아무것도 (그것은 여전히 ​​컨트롤러 동작을 기본값으로) 얻을. 여기에 누락 된 단계가 있나요? 내 $this->view 작동하지 않는 이유는? 명령 줄을 사용하여보기를 만들었습니다. 올바르게 설정해야한다는 확신 내가 어떤 도움 뭔가 감사를 등록해야합니까Zend framework,보기

+0

모든보기에서 상황이 동일하거나보기 하나만입니까? – janenz00

+0

모든보기 - 내가 볼 수있는 것. –

답변

2

ZF1.x의 표준 MVC 설정을 가정하면 URL, 컨트롤러 및 동작 사이에는 확실한 관계가 있습니다.

URL입니다 http://mydomain.com/index인덱스 컨트롤러의 인덱스 조치를 부를 것이다, 일반적으로 인덱스 동작은 기본 동작이며 자동으로 호출된다. 뷰 스크립트는 http://mydomain.com/index/chart/application/views/scripts/index/chart.phtml

이 동작 기반 변경 있음을 알아 두셔야 될 것 인덱스 컨트롤러와 뷰 스크립트의 차트 조치를 부를 것이다 /application/views/scripts/index/index.phtml

URL입니다 것 설정 및 라우팅 옵션.

ZF와의 작업에서 상당히 새 것처럼 보입니다. 그래서 다음과 같은이 관계를 보여 도움이 될 수 호출하여 지금

// application/controllers/IndexController.php 
class IndexController extends Zend_Controller_Action 
{ 
    public function init() 
    { 

    } 

    public function indexAction() 
    { 
     $this->view->test = "Hello World, from the indexAction()."; 
    } 
    public function chartAction() 
    { 
     $this->view->test = "Hello World, from the chartAction()."; 
    } 


// application/views/scripts/index/index.phtml 
<?php echo $this->test ?> 


// application/views/scripts/index/chart.phtml 
<?php echo $this->test ?> 

를 응용 프로그램을 테스트하는 URL의 :

http://yourDomain.com/index/index
http://yourDomain.com/index/chart

당신의 설정이 사용자가 적절한를 볼 수 맞다면 귀하의 페이지에 응답.

2

사례 1 :.?!

룩 :보기는 단지 하나 개의 조치를 해제 당신의 행동에 다음 코드.

$this->_helper->viewRenderer->setNoRender(true); 

사례 2 :보기 특정 컨트롤러에서 모든 작업에 대해 비활성화 : 중은 init() 또는 컨트롤러의 preDispatch() 함수에서 위의 라인 찾습니다.

사례 3 : 확인 케이스 1, 또한 2. 당신의 Bootstrap.php에 다음과 같은 무언가를 찾습니다 :

$frontController->setParam("noViewRenderer", true); 

당신이 찾아내는 경우에보기는 모든 컨트롤러의 모든 행동에 대한 해제 위와 같은 코드를 사용하면 뷰를 작동 시키려면 주석을 달아야합니다. 보기를 사용하지 않을 가능성이 더 많습니다. 이것들은 이것 이후에 점검되어야한다.

+0

그래서 이것들 중 아무 것도 아닙니다 .... 어디에서 차단되는지 아직 확실하지 않습니다. –

1

로보기는 controller

$this->_helper->layout->disableLayout(); $this->_helper->viewRenderer->setNoRender();

UPDATE를 확장 할 수있다 당신의 당신의 action 또는 컨트롤러의 init 또는 클래스의 코드 disabled..check이 라인이다

당신은 그 일을하고 있습니다 chartAction에 있고 index.phtml에 에코가 표시되어야합니다. chart.phtml

+0

+1 부분에 대한 업데이트 :-) – janenz00