MultipleCheckbox
リストのチェックボックスが選択されていない場合、フォームの検証が失敗するという問題、特に問題に苦しんでいます。(詳細はこちら)
Zend\Form\Element\Checkbox
この問題を回避するには、メソッドをオーバーライドするカスタムのものに置き換えたいgetInputSpecification()
:
Checkbox.php
namespace My\Form\Element;
use Zend\Form\Element\Checkbox as ZendCheckbox;
class Checkbox extends ZendCheckbox
{
public function getInputSpecification()
{
$spec = parent::getInputSpecification();
$spec['required'] = false;
return $spec;
}
}
module.config.php
return [
'form_elements' => [
'invokables' => [
'Zend\Form\Element\Checkbox' => 'My\Form\Element\Checkbox',
],
]
];
しかし、私のカスタムCheckbox
クラスは Zend の on を置き換えていません。完全に無視されているわけではありません。Xdebug を使用すると、場合によっては使用されることがわかります(RadioButton
要素や単一Checkbox
要素など)。しかし、他の場合(特に my のチェックボックスの場合MultiCheckbox
)はそうではありません。
私は何を間違っていますか?Zend\Form\Element
アプリケーション全体の a を置き換える方法は?