Zend setData方法阻止Collection :: setCount工作

时间:2018-05-15 08:55:24

标签: php zend-framework zend-form zend-framework3 zend-form-element

我有一个带有Select元素集合的Zend_Form。我想增加该集合中的元素数量,同时保留之前做出的任何选择(之前的选择存储在POST请求中)。

我使用$form->setData($data);将POST请求中的值保存到Zend_Form。

然后我使用$form->get('countryTest')->setCount(9);尝试增加Collection中Selection元素的数量。但是,与setCount()结合使用时,setData()似乎不会更改计数。知道为什么吗?我该怎么做呢?

我的收藏:

$this->add(array(
            'name' => 'countryTest',
            'type' => 'Collection',
            'options' => array(
                'label' => '',
                'count' => 3,
                'should_create_template' => true,
                'target_element' => array(
                    'type' => 'Select',
                    'options' => array(
                        'label' => 'Country',
                    ),
                ),
            ),
        ));

修改

我还尝试使用setData()在Collection和THEN中构造一个包含更多元素的新Zend_Form,但这样做似乎可以将Collection中的元素数量减少到数据中的元素数量(可能与预期一样)。

1 个答案:

答案 0 :(得分:0)

找到解决方案:

将我想要的元素数量(以键的形式)传递给setData()