Как заменить элемент формы на пользовательский в ZF2?
Я борюсь с 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
класс не заменил на зенд. Это не игнорируется полностью - я вижу с Xdebug, что он используется в некоторых случаях (например, для RadioButton
элемент и для какого-то одного Checkbox
элементы). Но в некоторых других случаях (особенно для флажков моего MultiCheckbox
) нет
Что я делаю неправильно? Как заменить Zend\Form\Element
для всего приложения?