2011-02-23 5 views
7

4 개의 하위 폼을 함께 그룹화하고 싶습니다. 그런 다음 몇 가지 데코레이터를 적용하고 싶습니다.하위 폼을 그룹화하는 방법

여기까지입니다. 각각의 하위 폼에 이미

$this->setSubForms(array(
    'sub1' => $sub1, 
    'sub2' => $sub2, 
    'sub3' => $sub3, 
    'sub4' => $sub4 
)); 

현재 일부 디스플레이 그룹이 승/나는 분명히이 전혀 작동하지 않습니다

$set1 = $this->setSubFormDecorators(array(
    'sub1' => $sub1, 
    'sub2' => $sub2 
    )); 
    $set1->setDecorator(array('something here')); 

$set2 = $this->setSubFormDecorators(array(
    'sub3' => $sub3, 
    'sub4' => $sub4 
    )); 
    $set2->setDecorator(array('something here')); 

같은 것을 할 수 있다고 생각.

저는 ZF의 문서에서 실제로 아무것도 찾을 수 없습니다. 나는 다른 누군가가이 난관을 뛰어 넘는다면 내가 여기에 올린다고 생각했다.

답변

4

그래서 기본적으로 알아 냈습니다.

우선 당신이 "빈"하위 폼을 만들

$left = new Zend_Form_SubForm();  

당신은 당신이 "하위"당신은 당신이 원하는 다른 하위 폼에 대해 같은 일을

$left->setSubForms(array(
    'sub1' => $sub1, 
    'sub2' => $sub2 
)); 

의 내부에 원하는 하위 폼을 추가 데코레이터를 추가합니다.

$right = new Zend_Form_SubForm();  

$right->setSubForms(array(
    'sub3' => $sub3, 
    'sub4' => $sub4 
)); 

그런 다음 원래의 형태로 이러한 새로운 "$ 왼쪽"과 "$ 권리"하위 폼을 추가

$this->setSubForms(array(
    'left' => $left, 
    'right' => $right 
)); 
그런 다음 "$ 왼쪽"과 "$ 오른쪽"하위 폼에 장식을 적용 할 수 있습니다

당신이 적합하다고 생각 하듯이.

광산 내부의 요소를 캡슐화하는 필드 세트를 삭제하려는 경우 다른 것과 동일하게 수행합니다.

$left->setDecorators(array(
     'FormElements', 
     array('HtmlTag', array('tag' => 'div')), 
     )); 

감사

0

아마도 addDisplayGroup이 경우에도 괜찮습니까?

+2

는 더 addDisplayGroup 요소가 필요하지 않습니다. 나는 그것을 알아 냈다. 그래도 고마워 –

관련 문제