2013-02-20 48 views
2

我還沒有找到任何關於爲Zend Framework 2表單集合設置字段屬性的文檔。我可以設置單個輸入字段的值是這樣的:如何在ZF2的表單集合上使用setAttribute?

$form->get('title')->setAttribute('value', $value);

我想不通的是如何爲集合設置的值。

$form->get('sample_collection')返回一個Zend \表格\元素\集合對象

好像我需要去一個更深一層,然後選擇特定的領域,這樣我可以在其上使用->setAttribute

非常感謝您在解決此問題上的幫助。

回答

0

使用形式集合作爲數組:

$elements = $form->get('sample_collection'); 
foreach($elements as $element){ 
    $element->setAttribute('value', $value); 
} 
+0

我認爲這讓我更接近。看來我需要將$元素帶回到$ form對象中。 '$ form-> add($ element);'只是複製輸入字段而不添加值。 – Josh 2013-02-21 15:10:47

2

我有一些這方面的真正的麻煩,我其實可以訪問一個字段中的集合與下面的唯一途徑。 (如果集合有一個以上的字段集,你就必須添加foreach循環內的if語句來得到你想要的字段集。)

$array = array('keys'=>'values'); 
$collection = $form->get('name_of_collection'); 
foreach ($collection as $coll) 
{ 
    $fieldset = $coll; 
} 

$element = $fieldset->get('name_of_element'); 
$element->setValueOptions($array); 

我希望下面的工作,它沒有。我不確定這是Zend框架中的錯誤還是我做錯了什麼。

$collection = $form->get('name_of_collection'); 
$fieldset = $collection->get('name_of_fieldset'); 
$element = $fieldset->get('name_of_element'); 

如果你只是想不能訪問一個字段中的單個元素的集合內。以下對我來說工作得很好。

$fieldset = $form->get('name_of_fieldset'); 
$element = $fieldset->get('name_of_element'); 
$element->setAttribute('id', 'name_of_element'); 

我希望這可以幫助某人。

+0

感謝您指出您的解決方案是fieldset元素 – 2015-01-21 05:20:45