Я пытаюсь создать форму поиска без сущности.Symfony2 форма проверки без класса
Контроллер:
public function SearchFormAction() {
$collectionConstraint = new Collection(array(
'size' => new MinLength(3),
));
$searchform = $this->createFormBuilder(null, array(
'validation_constraint' => $collectionConstraint,
))
->add('min_range')
->add('max_range')
->add('bedrooms')
->add('bathrooms')
->add('size')
->add('user')
->getForm()
;
return $this->render("RealBundle:User:search.html.twig", array(
'searchform' => $searchform->createView(),
));
}
Вид:
<div id="dialog" title="Advanced Search">
<form action="{{ path('searchresults') }}" method="post" {{ form_enctype(searchform) }} id="frmSearch">
<fieldset>
<h3>Properties</h3>
<div class="form-search-item">
{{ form_label(searchform.min_range, 'Price Range') }} {{ form_widget(searchform.min_range) }} to {{ form_widget(searchform.max_range) }}
{{ form_widget(searchform.min_range) }}
</div>
<div class="form-search-item">
{{ form_label(searchform.bedrooms, 'Bedrooms') }}: {{ form_widget(searchform.bedrooms) }}
</div>
<div class="form-search-item">
{{ form_label(searchform.bedrooms, 'Bathrooms') }}: {{ form_widget(searchform.bathrooms) }}
</div>
<div class="form-search-item">
{{ form_label(searchform.bedrooms, 'Size') }}: {{ form_widget(searchform.size) }}
</div>
<h3>User</h3>
<div class="form-search-item">
{{ form_label(searchform.user, 'User') }}: {{ form_widget(searchform.user) }}
</div>
{{ form_rest(searchform) }}
<input type="submit" value="Search">
</fieldset>
</form>
Я попробовать с другой валидаций как MINLENGTH, MaxLenght, тип и ничего не работает для меня, что я делаю неправильно ? Я хочу, чтобы проверить, диапазон, спальни, ванные комнаты, размер как целые числа и minLenght для пользователя.
Tnx и извините за мой английский.
Tnx для ответа, поэтому его проверка выполняется, отправив форму контроллеру, и если она недействительна, перенаправляется на ту же страницу, на которой показаны ошибки. В любом случае, перед тем, как отправить форму? Tnx много, и извините за мой английский снова, я начинаю с symfony2. – goma
Ваш английский хорошо :) Symfony будет генерировать правила проверки html5 для некоторых валидаторов, например, не позволяя пустое поле. Это означает, что если пользователь не заполнил требуемое поле и попадает в броузер, браузер предупредит их и не сможет отправить форму. Я не знаю, может ли проверка html5 обрабатывать все более сложные, чем пустые поля. В документации по форматам есть краткий раздел: http://symfony.com/doc/current/book/forms.html – user1207727
Большое спасибо, очень полезно – goma