1
エンティティなしで検索フォームを作成しようとしています。クラスなしの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のような他の検証をしてみてくださいました? 私は、範囲、寝室、バスルーム、整数としてのサイズ、およびユーザーの最小値を検証したいと考えています。
Tnxと申し訳ありません。
Tnxが応答するため、コントローラにフォームを送信し、エラーを示す同じページに有効なリダイレクトがない場合、検証が行われます。フォームを提出する前に検証する必要はありますか? Tnxたくさんの、私の英語をもう一度申し訳ありません、私はsymfony2から始めています。 – goma
あなたの英語はうまくいきます:) Symfonyはいくつかのバリデーターに対してhtml5検証ルールを生成します。例えば、空白フィールドを許可しないなどです。これは、ユーザーが必要なフィールドに記入せずに送信した場合、ブラウザが警告を出してフォームが送信されないようにすることを意味します。 html5の検証で空白のフィールドより複雑なものを処理できるかどうかはわかりません。フォーム文書には簡単なセクションがあります:http://symfony.com/doc/current/book/forms.html – user1207727
ありがとう非常に助かりました – goma