2012-08-30 27 views
5

Zend Form 2, Fieldsets içindeki tüm Unsurları yapılandırır. (Zend \ Form \ Formu fieldset uzanır - Form :: aramaları ebeveyn :: add) ben sadece bir alan kümesi kullanırsanız i $form->getElements() aracılığıyla onları alabilirsiniz Formu Elements eklerseniz aracılığıyla ben onları alabilirsinizForm Öğeleri aracılığıyla eklendiklerinde sırasıyla

foreach($form->getFieldsets() as $fieldset){ 
    $elements = $fieldset->getElements(); 
} 

Ancak birkaç gizli alan eklediğim bir form, sonra bir fieldet ve son bir gönder düğmesinin olduğunu hayal edin.

Öğeleri/alan kümelerini doğru sırada nasıl alabilirim?

Bunun arkasındaki neden, görünüm yardımcılarına basit bir çağrı yoluyla formları yazdırmama izin veren bir görüntü yardımcı aracı üzerinde çalışıyorum. Herhangi bir yardım çok takdir edilir

-

ben formRow() (sunudan mantığı ayıran ben Form2 arkasında kavramının biliyorum) çağrı yoluyla her form öğesini çağırmak istemiyorum. TIA

cevap

9

onlar forma eklenmiştir sırayla elemanları ve fieldset almak için aşağıdakileri yapabilirsiniz: IteratorAggregate Arayüz FieldsetInterface içinde (ayarlandığı

/* $form is an instance of \Zend\Form\Form */ 
foreach ($form as $element) { 

    // check if it's a form element or a fieldset etc. 
    // and recursively iterate over elements of fieldsets etc. 
} 
+0

ah sayesinde, çok basit, nihayet bulundu), ancak iterasyon için geçerli | next | prev yöntemlerini bulamıyorum. Bu yüzden hiçbir zaman doğrudan nesnenin üzerine dönmeyi denemedim. – Rufinus