Zend framework2 向Zend\Form\Element\Collection添加策略
有没有办法向Zend framework2 向Zend\Form\Element\Collection添加策略,zend-framework2,Zend Framework2,有没有办法向Zend\Form\Element\Collection元素添加水合策略?我用正常的方式试过: $hydrator = new ClassMethods(); $hydrator->addStrategy('language', new LanguageStrategy($em)); $hydrator->addStrategy('items', new UnitItemsStrategy($em)); $this->setHydrator($hydrator);
Zend\Form\Element\Collection
元素添加水合策略?我用正常的方式试过:
$hydrator = new ClassMethods();
$hydrator->addStrategy('language', new LanguageStrategy($em));
$hydrator->addStrategy('items', new UnitItemsStrategy($em));
$this->setHydrator($hydrator);
对于元素:
$this->add(array(
'type' => 'Zend\Form\Element\Collection',
'name' => 'items',
'options' => array(
'label' => 'Items',
'count' => 1,
'should_create_template' => true,
'allow_add' => true,
'target_element' => array(
'type' => 'Application\Form\UnitItemFieldset',
),
),
));
但是水合器策略永远不会被调用。当我将它重新映射到另一个元素,如
text
时,它会被调用。因此,它似乎与元素是Zend\Form\element\Collection
有关。实际上,它们可以像添加到任何其他元素一样添加到集合中。在我的例子中,在正确使用集合时出现了几个错误:
- 未在视图脚本中调用
$form->prepare()
- 有一段时间没有使用
或(由于调试),但我不知道为什么这会是一个问题(虽然是这样,但可能我遗漏了其他东西)ClassMethods
使用的方法(例如,在我的情况下,ClassMethods
)不可调用,那么ZF也不会调用该方法或策略setItems