2009-07-31 2 views
1

난 .. 난 나무에 나무를 볼 수 없습니다 생각Zend_Layout - 인덱스 컨트롤러를 통해 설정 값

스피 layout.phtml 느릅 나무와 젠드 프레임 워크를 사용하여 렌더링 부분입니다

<?php echo $this->partial('_header.phtml') ?> 

내 목표는 내가 부분보기로 양식을 전달할 수있는 방법

<?php echo $this->form; ?> 

와 "_header.phtml"로 내 인 IndexController에서 양식을 렌더링하는 것입니다?

답변

9

뷰 부분은 깨끗한 변수 범위로 렌더링됩니다. 즉, Zend_View 호출 인스턴스에서 뷰 변수를 상속하지 않습니다.

는 단순히 전화 :

여기에 사용할 수있는 몇 가지 옵션이있다

echo $this->render('_header.phtml'); 

대신의 일부를 사용. 이 파일은 모든보기 변수에 액세스 할 수 있으므로 컨트롤러의보기에 양식을 지정할 수 있습니다.

또 다른 방법은 명시 적으로 같은 부분에 변수로 양식을 전달하는 것입니다 :

echo $this->partial('_header.phtml', array('form' => $this->form)); 
// $this->form inside your partial will be your form 

귀하의 다른 옵션은 중 하나를 사용하여 자리, 또는 레이아웃 응답 세그먼트.

<?php echo $this->placeholder('header'); ?> 

을 그리고 당신의 컨트롤러 :

$this->view->placeholder('header')->append($form); 
// I'm not sure, but you _may_ want to pass in $form->render() here. 
// I can't remember if implode() (which is used in placeholders internally) 
// will trigger the __toString() method of an object. 

이가있다 양식 렌더링 할 이제까지 당신의 _header.phtml, 또는 레이아웃 ...에서

: 여기 자리의 예입니다 폼과 같은 일회성 변수로 뷰 인스턴스를 오염시키지 않는 보너스 추가.

참고 : ZF 사이트가 백업 되 자마자 수동 페이지로 연결됩니다. 1.9 출시가 오늘이므로 사이트가 현재 업데이트 중입니다.

+0

멋지 대답, 감사 : 여기

는 몇 가지 관련 매뉴얼 페이지입니다 – opHASnoNAME