Как заменить элемент формы на пользовательский в 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 для всего приложения?

0 ответов

Другие вопросы по тегам