ZF2 Проверка формы, связанной с сущностью

Я связываю форму с Doctrine Entity, используя:

$form->bind($user);

Форма использует Fieldsets.
Затем я пытаюсь прикрепить подтверждение к форме:

$form->setInputFilter($userFormValidation->getInputFilter());

Где проверки выглядят так:

namespace User\Form;

use Zend\InputFilter\Factory as InputFactory;
use Zend\InputFilter\InputFilter;
use Zend\InputFilter\InputFilterAwareInterface;
use Zend\InputFilter\InputFilterInterface;

class UserFormValidation implements InputFilterAwareInterface
{

protected $inputFilter;                       // <-- Add this variable// Add content to these methods:
public function setInputFilter(InputFilterInterface $inputFilter)
{
throw new \Exception("Not used");
}

public function getInputFilter()
{
if (!$this->inputFilter) {
$inputFilter = new InputFilter();
$factory     = new InputFactory();

$inputFilter->add($factory->createInput(array(
'name'     => 'input-username',
'required' => true,
'filters'  => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name'    => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min'      => 10,
'max'      => 50,
),
),
),
)));

$this->inputFilter = $inputFilter;
}

return $this->inputFilter;
}
}

Форма никогда не проверяется, и когда я пытаюсь отобразить все ошибки проверки с помощью $ form-> getMessages (), я получаю пустой массив.

Кто-нибудь сталкивался с этой проблемой?

0

Решение

Спасибо, ребята, я сейчас исправил проблему. Проблема была вызвана использованием

$form->setInputFilter()

функция с формой, которая имеет вложенные наборы полей. В классе, который расширяет Fieldset, есть эта функция:

class UserFieldset extends Fieldset
{
...
public function getInputFilterSpecification()
{
return [
'field-name' => [
...
],
]
}
}

Эта реализация исправила мои проблемы.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]