3

Zend_Form을 설정하는 데 어려움이 있습니다. Zend_Form 하위 클래스가 있습니다. 이 양식에는 몇 가지 필수 정보와 몇 가지 추가 정보가 있습니다. 배열을 통해 추가 정보에 액세스 할 수 있기를 바랍니다. 제출 된 데이터는 다음과 같이 표시됩니다배열 표기법을 사용하도록 Zend_Form을 구성하는 방법은 무엇입니까?

$formData['required1'] 
$formData['required2'] 
$formData['addiotnalData']['aData1'] 
$formData['addiotnalData']['aData2'] 

나는이 봤과 내가 찾은 모든 제안을 (하위 폼을 사용하고 Zend_Form::setIsArray($flag)Zend_Form::setElementsBelongTo($array) 방법을 설정) 시도했지만 할 방법을 생각하지 않은 것 이.

내가 뭘 잘못하고 있니? 배열 표기법을 사용하여 데이터에 액세스 할 수 있도록 양식 요소의 이름을 설정하는 방법은 무엇입니까?

답변

2

로 분류 해주세요. 문제는 사용 된 사용자 정의 데코레이터입니다.

//In 
$subForm = new Form_SubForm(); //this can be a Zend_Form or Zend_Form_SubForm  
$subForm->setIsArray(true); 
$this->addSubForm($subForm, 'subform'); 

요소 subform-elementname의 ID 및 subform[elementname]의 이름으로 렌더링 될 것이다.

+0

안녕하세요, 저는 동일한 문제가있어서 알려 주신 내용을 변경했습니다. 그러나 이것은 나의 예외에 따라 작동하지 않습니다. 커스텀 데코레이터는 어떻습니까 ??? –

0

$ form-> setIsArray (TRUE)가 요소에 대한 사용자 정의 데코레이터에서 작동하지 않아 답변을 확장하려고합니다. Zend_Form_Element 렌더링에 사용자 정의 ViewScript 데코레이터가 필요했습니다.

문제는 $ this-> element-> getName()을 사용하여 요소 이름을 렌더링하고 있다는 것입니다. ViewScript 데코레이터 스크립트에서 $ this-> element-> getFullyQualifiedName()을 사용해야했습니다.