2014-04-16 2 views
1

나는 일부 필드 세트를 다루려고하고 있는데 마녀는 같은 테이블 엔티티와 바인드되어 있으며 다른 필드 엔티티에 중첩되어 있습니다. Exemple :ZF2 : 중첩 된 필드 세트. 바인딩 및 수화

모델 :

Table Building 
-> Name 
-> Description 
-> street name 
-> street Number 
-> consierge's phone 
-> level count 
-> height 
-> Year of construction 

이 모든 필드는 하나 개의 테이블에 있지만 난 exemple이 같은 배수 필드 셋을 사용하는 whant :

descriptionBlgFieldset 
->name 
->description 

AddressBlgFieldset 
->street Name 
->street Number 
-> consierge's phone 

FeaturesBlgFieldset 
-> level count 
-> height 
-> Year of construction 

그런 다음 내가 사람들을 혼합 whant 주소가있는 예제 설명, 기능이있는 설명 또는 모두 포함 된 일부 필드 집합. 나는이 케이크의 평화를했다 생각했다,하지만 난 해달라고 바인딩을 처리하는 방법을 알고 :

echo $form->get('building')->get('address')->get('streetNumber) 

이 내게 줄 :

<input name="building[addresse][streetNumber]" /> 

를하지만해야합니다입니다 :

<input name="building[streetNumber]" /> 

I "set_as_base_fieldset"옵션에 대해 어떻게 생각 하나 필드 세트가 아닌 폼 객체에서 필드 세트를 가져야 만 작동합니다.

어떻게 할 수 있습니까? (나는이게 무엇이든 알기를 바랍니다)

답변

0

building[streetNumber]을 원하면 Fieldset을 사용하고 싶지 않습니다. 그게 전부입니다. Zend\Form\Fieldset은 독립형/자체 객체 인 속성 집합을 캡슐화하는 요소입니다. 예 :

Table Buildings 
- id 
- attr1 
- addr_id 

Table Addresses 
- id 
- name 
- nr 

이 경우에는 AddressFieldset이됩니다. 그러나 이것은 당신이 원하는 것이 아닙니다. 기본 렌더링에 영향을 미치기 위해 이것을 필드 집합으로 나누었다 고 가정합니다. 이것은 잘못 사용 된 Zend\Form\Fieldset입니다. 당신은 단순히 양식 다르게 같은

echo $this->form()->openTag($form); 
echo "<fieldset>\n"; 
echo " <legend>Address</legend>\n"; 
echo $this->formRow($form->get('streetName')); 
echo $this->formRow($form->get('streetNuber')); 
echo "</fieldset>\n"; 
echo "<fieldset>\n"; 
echo " <legend>Features</legend>\n"; 
echo $this->formRow($form->get('levelCount')); 
echo $this->formRow($form->get('height')); 
echo "</fieldset>\n"; 
echo $this->form()->closeTag(); 
+0

아 렌더링해야 할 것, 즉 내가 ^^ 을 피하기 위해 whanted 내가 easly validationGroup 방법을 사용하도록 설정 필드를 사용하는 whanted 무엇인지 정확히 ... 아닌 다른 솔루션이 ? – Snyf

+0

내가 같은 테이블에 영향을 미치는 언젠가 많은 다른보기를 가지고 있기 때문에 ... 그리고 내가 필드를 추가하거나 제거 할 때마다 그것들 모두를 바꿀 필요가 없다. – Snyf

+1

좋아, 내 해결책을 찾았 어. 부분보기와 내 양식 내에서 validationGroup 사용. 감사! – Snyf