Symfony2 form.error字段不起作用

时间:2015-07-21 19:36:15

标签: forms symfony view

我遇到了问题。我创建了一个表单类,并将一些断言设置为我的权限。

但现在我想渲染错误。 我得到了全局错误的form_erros,但没有得到字段。

这里是代码:

控制器

public function addAction(Request $request){
    $news = new news();
    $form = $this->createForm(new NewsType(),$news);

    $form->handleRequest($request);

    if ($form->isValid()) {
    echo "YEPP";
    }

    return array( 'form' => $form->createView() );
}

Formclass

$builder
        ->add('unpublic','checkbox',array(
                'required' => false))
        ->add('unactive','checkbox',array(
                'required' => false))
        ->add('untitle','text',array(
                'required' => true))

查看

<div class="form-group">
   {{ form_label(form.untitle,'Titel*',{ 'label_attr': {'class': 'col-sm-2  control-label'}}) }}
    <strong>{{ form_errors(form.untitle) }}</strong>
    <div class="col-sm-10">
    {{ form_widget(form.untitle, {'attr': {'class' : 'form-control'} })  }}
    {{ form_errors(form.untitle) }}
    </div>
</div>

实体

/**
 * @var string
 *
 * @ORM\Column(name="UNTITLE", type="string", length=255)
 * 
 * @Assert\NotBlank()
 * @Assert\Type("Text")
 *
 */
private $UNTITLE;

非常感谢

2 个答案:

答案 0 :(得分:0)

正如您所说,{{ form_errors(form) }}显示全局表单错误,而不是单个字段。

如果您希望通过{{form_errors(form)}}访问单个字段错误,则需要为表单中的每个字段启用选项error_bubbling => true

其他解决方案:

  • 单独呈现每个字段的错误{{ form_errors(form.name) }}
  • {{ form_row(form.name) }}用于一起呈现标签,小部件和错误。

希望它会有所帮助。

答案 1 :(得分:0)

正如zilongqiu所说,你应该用{{ form_errors(form.name) }}

单独显示字段错误

如果您想通过全局表单访问字段错误,可以查看以下链接:http://blog.lyrixx.info/2013/01/31/symfony2-snippet-to-render-all-form-error.html

CYA。