我没有找到任何有关为Zend Framework 2表单集合设置字段属性的文档。我可以像这样设置单个输入字段的值:
$form->get('title')->setAttribute('value', $value);
我无法弄清楚如何设置集合的值。
$form->get('sample_collection')
返回Zend \ Form \ Element \ Collection对象
似乎我需要深入一层并选择特定字段,以便我可以使用->setAttribute
。
提前感谢您帮助解决此问题。
答案 0 :(得分: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');
我希望这对某人有帮助。
答案 1 :(得分:1)
将表单集合用作数组:
$elements = $form->get('sample_collection');
foreach($elements as $element){
$element->setAttribute('value', $value);
}