在 ZF2 中,我用自己的(称为My\Form\Element\Text
)覆盖了 Text 元素。现在我想这样做,以便当我向表单添加文本元素时,它默认为我的覆盖类而不是Zend\Form\Element\Text
:
$this->add([
'type' => 'text',
'name' => 'to',
]);
我知道我可以使用'type' => 'My\Form\Element\Text'
而不是 just 'type' => 'text'
,但我试图找出是否可以避免这种情况并默认使用自定义元素。
我已经尝试了这两种技术:
模块.config.php
return [
'form_elements' => [
'invokables' => [
'text' => 'My\Form\Element\Text',
],
],
];
模块.php
class Module {
public function getFormElementConfig() {
return [
'invokables' => [
'text' => 'My\Form\Element\Text',
],
];
}
}
这些都不起作用(仍然得到一个实例Zend\Form\Element\Text
)。是否有其他注册元素的方法,以便该Zend\Form\Factory::create()
方法创建我的自定义元素的实例而不是 Zend 版本?