没有类的Symfony2验证表单 [英] Symfony2 validation form without class

查看:107
本文介绍了没有类的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('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验证表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆