2

我还没有找到为 Zend Framework 2 表单集合设置字段属性的任何文档。我可以像这样设置单个输入字段的值:

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

我不知道如何设置集合的值。

$form->get('sample_collection')返回一个 Zend\Form\Element\Collection 对象

似乎我需要更深入一层并选择特定的字段,以便我可以使用->setAttribute它。

提前感谢您帮助解决此问题。

4

2 回答 2

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');

我希望这可以对某人有所帮助。

于 2013-06-04T04:27:01.323 回答
1

使用表单集合作为数组:

$elements = $form->get('sample_collection');
foreach($elements as $element){
    $element->setAttribute('value', $value);
}
于 2013-02-21T11:02:15.103 回答