问题描述
我试图在没有实体的情况下创建一个搜索表单。控制器:
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('bathroom')
- > add('size')
- > add('user')
- > getForm()
;
return $ this-> render(RealBundle:User:search.html.twig,array(
'searchform'=> $ searchform-> createView(),
));
}
查看:
< div id =dialogtitle =高级搜索>
< form action ={{path('searchresults')}}method =post{{form_enctype(searchform)}} id =frmSearch>
< fieldset>
< h3>属性< / h3>
< div class =form-search-item>
{{form_label(searchform.min_range,'Price Range')}} {{form_widget(searchform.min_range)}}为{{form_widget(searchform.max_range)}}
{{form_widget(searchform。 min_range)}}
< / div>
< div class =form-search-item>
{{form_label(searchform.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>使用者< / h3>
< div class =form-search-item>
{{form_label(searchform.user,'User')}}:{{form_widget(searchform.user)}}
< / div>
{{form_rest(searchform)}}
< input type =submitvalue =Search>
< / fieldset>
< / form>
像MinLength,MaxLenght,Type的验证,没有什么适用于我,我做错了什么?
我想验证,范围,卧室,卫生间,尺寸为整数,以及用户的minLenght。
Tnx并为我的英语感到抱歉。
您的验证似乎在我的测试中起作用。但您错过了模板中的错误消息。
您需要
$ b
来渲染全局错误,然后对每个字段执行$ c $ {
您可以显示其错误,例如
{{form_errors(form.size)}}
然后就好像通过魔法你应该看到你的错误信息。虽然没有看到你的控制器,我不能确定你是绑定和调用isValid。
如果你仍然有问题,那么请张贴您的控制器。 / p>
I'm trying to make a search form without an entity.
Controller:
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(),
));
}
View:
<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>
I've try with another validations like MinLength, MaxLenght, Type and nothing works for me, what am I doing wrong?I want to validate, range, bedrooms, bathrooms, size as integers, and a minLenght for user.
Tnx and sorry for my english.
Your validation seems to be working in my test. But you're missing the error messages in the template.
You need
{{ form_errors(form) }}
to render global errors, and then for each field you can display its errors, eg
{{ form_errors(form.size) }}
Then as if by magic you should see your error messages. Although not having seen your controller I can't be sure you're binding and calling isValid.
If you're still having problems then please post your controller too.
这篇关于没有类的Symfony2验证表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!