2011-12-10 3 views
1

저는 젠드 폼을 사용하는 모델로 작업 중입니다. $ product_item이라는 하위 폼이 있습니다. 그것의 여러 인스턴스를 $ items라는 다른 하위 폼에 추가하고 싶습니다. 그 일을 어떻게 하죠? 특히 Zend 참조 가이드가 도움이되지 않습니다.서브 폼 내의 서브 폼

답변

3

당신은 하위 폼에 하위 폼을 추가 할 수 있습니다 : -

$form = new Application_Form_Test(); 
$subForm1 = new Application_Form_TestSubForm(); 
$subForm2 = new Application_Form_TestSubForm(); 
$subForm1->addSubForm($subForm2, 'sub2'); 
$form->addSubForm($subForm1, 'sub1'); 
$this->view->form = $form; 

를 제출에 하위 폼 값이 $_POST 배열의 배열에서 사용할 수 있습니다. 예 : $value=$_POST['sub1']['sub2']['name'].

http://framework.zend.com/manual/en/zend.form.forms.html#zend.form.forms.subforms

인쇄하려면 또는 하위 형태의 액세스 요소는 몇 가지 옵션이 있습니다 : - 그런 다음 email 필드를 렌더링 할 수

$email = new Zend_Form_Element_Text('email'); 

-$subForm1 따라서 선언 된 요소가

경우를 다음과 같은보기 : -

<?php echo $this->element->sub1->email; ?> 

요소는 선언 할 때 사용하는 변수가 아닌 이름 인으로 참조됩니다.

또한 $this->elementZend_Form의 인스턴스를 참조하므로 모든 방법을 사용할 수 있습니다. 즉, 다음과 같이 할 수 있습니다. -

<?php 
    $form = $this->element; 
    $formElements = $form->getElements(); 
?> 
+0

감사합니다. 만약 내가 할 수있는 후속 ... 나는 당신처럼보기에서 정상적인 양식 요소를 인쇄 할 수 있습니다 : ' 요소 -> 이메일;?>'. $ email이 $ subForm1의 요소라면 어떻게 인쇄 할 것인가? – liz

+0

나는 내 대답을 편집했다. – vascowhite

+0

업데이트 : '$ this-> element-> sub1-> sub2-> email;' – liz