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