27cm
@27cm
TODO: Написать статус

Как задать allow_empty для элемента формы, используя фабрику в ZF2?

Имеется элемент, у которого по умолчанию (allow_empty == true):
namespace Application\Form\Element\Text;

use Zend\Form\Element\Text;
use Zend\InputFilter\InputProviderInterface;
use Zend\Validator\NotEmpty;

class Login extends Text implements InputProviderInterface
{
    public function getInputSpecification()
    {
        return array(
            'name' => 'login',
            'required' => true,
            'allow_empty' => true,
            'validators' => array(
                array(
                    'name' => 'notEmpty',
                ),
            ),
        );
    }
}


Создавая форму с этим элементом с помощью фабрики, требуется задать (allow_empty == false). Единственный способ, который я нашёл, требует знать имя элемента, и этим не устраивает:
$form = $factory->createForm(array(
    'elements' => array(
        array(
            'spec' => array(
                'type' => 'Application\Form\Element\Text\Login',
            ),
        ),
    ),
    'input_filter' => array(
        array(
            'name' => 'login',
            'allow_empty' => false,
        ),
    ),
));


Вот такой способ почему-то не работает так, как задумано:
$form = $factory->createForm(array(
    'elements' => array(
        array(
            'spec' => array(
                'type' => 'Application\Form\Element\Text\Login',
                'allow_empty' => false,
            ),
        ),
    ),
));
  • Вопрос задан
  • 2363 просмотра
Решения вопроса 1
Keanor
@Keanor
Ведущий разработчик
Элемент формы не имеет св-ва allow_empty, это св-во Input (которые хранятся по образу и подобию формы в InputFilter), там-же и используется.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы