我正在努力解决MultipleCheckbox
,尤其是问题,如果没有选中列表的复选框,则表单验证失败。 (详见here。)
要解决此问题,我想将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
元素)。但在其他一些情况下(特别是我的MultiCheckbox
的复选框)没有。
我做错了什么?如何替换整个应用程序的Zend\Form\Element
?