2013-02-20 78 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