繁体   English   中英

Symfony:不显示表单错误消息

[英]Symfony : form error message not displayed

我正在使用 Symfony 创建一个表单,它工作得很好,但是我的验证有问题,我填写了一个必填字段而不是空白,但是当我提交输入为空的表单时不显示错误消息我没有知道为什么

有一部分代码:

表格类型:

use Symfony\Component\Validator\Constraints\NotBlank;

class AnnonceurType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
      <some fields>
            ->add('phone', TextType::class, [
                'required' => true,
                'constraints' =>[
                    new NotBlank()
                ]
            ])
     }
}

表格模板:

{{ form_start(form) }}
 <some fields>
        <div class="form-group">
            {{ form_label(form.phone, 'Phone number') }} *
            {{ form_widget(form.phone, { 'attr': {'class': 'form-control'}}) }}
        </div>

        <div class="float-right">
            <button type="submit" class="btn btn-primary">
                  {{ 'submit'|trans() }}
            </button>
        </div>
        <div class="form-error">
            {{ form_errors(form) }}
         </div>
   
{{ form_end(form) }}

有人知道我的代码有什么问题吗? 感谢您

更新:已解决,这是因为需要,我添加了一个 novalidate ,现在可以了

function form_errors将 output 的错误与特定字段关联。 在这种情况下,由于根表单没有任何错误,因此它什么也不显示。

您可以:

  • 按字段单独呈现错误: form_errors(form.phone)
  • 在表单字段中使用选项error_bubbling ,因此错误冒泡到父级并按预期工作。

此外,由于您似乎正在使用引导程序,您可以配置form_theme以使用引导程序布局; 它会自动 output 字段错误作为form_label调用的一部分,尽管您将失去精细控制其渲染的能力。

if($form->issubmitted()){
$form['phone']->addError(new FormError('display message here'))
if($form->isValid()){

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM