0

如果没有选中列表的复选框,我正在努力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为整个应用程序替换一个?

4

0 回答 0