Я создаю и визуализую свою форму с помощью построителя форм, но кажется, что валидация отключена или работает неправильно. Я сохраняю свои правила проверки в файле validation.yml. Метод $form->isValid()
всегда возвращает true
и $form->getErrorsAsString()
не содержит ошибок (только [FieldName1]: No errors, [FieldName2]: No errors ... etc
).Как включить проверку для формы, созданной в построителе форм (Symfony2)?
Я создаю форму таким образом:
$form = $this->createForm(new CategoryType(), new Category());
Тогда я пошлю его к веточке.
В чем может быть причина? Как включить проверку?
----- UPDATE -------------------------
Я создаю форму таким способом:
public function indexAction()
{
return $this->render('MyBundle:MyView:index.html.twig', array(
"form" => $this->createForm(new CategoryType(), new Category())->createView()
));
}
CategoryType очень просто:
class CategoryType extends AbstractType {
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder ->add('name', 'text')
->add('categoryId', 'entity', array(
'class' => 'MyBundle:Category',
'property' => 'name',
));
}
public function getName() {
return 'my_form_name';
}
}
И конечно validation.yml:
MyBundle/Form/Type/CategoryType:
properties:
- name:
- NotBlank: ~
- Length:
min: 3
max: 30
MyBundle/Entity/Category:
properties:
- name:
- NotBlank: ~
- Length:
min: 3
max: 30
Я не знаю, какую версию использовать, но обе они не работают.
вы используете аннотации, чтобы указать ограничение? Убедитесь, что вы: http://symfony.com/doc/current/book/validation.html#validation-and-forms – mezod
знаете ли вы, что на самом деле функция '$ form-> isValid()'? Может быть, вы думаете, что эта функция проверяет правильность ввода, например javascript? –
Вы должны показать нам, где и как вы вызываете валидаторы. Также как вы обрабатываете запрос? Вы вызываете $ form-> handleRequest ($ request)? Могло быть много причин, почему ваша проверка не работает. Пожалуйста, подробнее –