ZF2 では、Text 要素を独自の要素でオーバーライドしました ( と呼びますMy\Form\Element\Text
)。ここで、テキスト要素をフォームに追加すると、オーバーライドされたクラスではなくデフォルトになるようにしたいと思いますZend\Form\Element\Text
。
$this->add([
'type' => 'text',
'name' => 'to',
]);
'type' => 'My\Form\Element\Text'
の代わりに使用できることはわかってい'type' => 'text'
ますが、それを回避してデフォルトでカスタム要素を使用できるかどうかを調べようとしています。
私はこれらのテクニックの両方を試しました:
module.config.php
return [
'form_elements' => [
'invokables' => [
'text' => 'My\Form\Element\Text',
],
],
];
Module.php
class Module {
public function getFormElementConfig() {
return [
'invokables' => [
'text' => 'My\Form\Element\Text',
],
];
}
}
これらはどちらも機能しませんでした (まだ のインスタンスを取得していますZend\Form\Element\Text
)。Zend\Form\Factory::create()
メソッドが Zend バージョンの代わりにカスタム要素のインスタンスを作成するように、要素を登録する他の方法はありますか?