【问题标题】:Individual field form error message not displaying in Symfony 2.1Symfony 2.1 中未显示单个字段表单错误消息
【发布时间】:2014-06-17 22:40:11
【问题描述】:

我在 Symfony 2.1 中有一个简单的表单,当我提交它时,我希望在我的表单页面上看到一些错误消息,因为我根据需要指出了一些字段。

但是,{{ form_errors(form.company_name) }} 显示该特定字段的错误消息的方法对我不起作用。它从不显示消息。但是,如果我使用{{form_errors(form)}},所有的错误信息都会显示在一个地方。我需要个人{{form_errors(form.company_name)}} 的工作方式。有人经历过吗?有什么问题?这是我的树枝代码:

<form method="post" {{ form_enctype(form) }} novalidate>
  <table>
  <tr>
    <td class="field-cell">{{ form_label(form.promo_referral) }}:&nbsp;</td>
    <td>{{ form_errors(form.promo_referral) }}{{ form_widget(form.promo_referral) }}</td>
  </tr>
  <tr>
    <td class="field-cell">{{ form_label(form.company_name) }}:&nbsp;</td>
    <td>{{ form_errors(form.company_name) }}{{ form_widget(form.company_name) }}</td>
  </tr>
  ...

这是我的相关控制器代码:

$registration = new ServiceVendorRegistration();
$form = $this->createForm(new ServiceRegisterForm(), $registration);

if ($request->isMethod("POST")) 
{
    $form->bind($request);
    if ($form->isValid())
    {
              // do something else
    }
}

return $this->render('MyBundle:Default:register_service_vendor.html.twig', array('form' => $form->createView()));

Validation.yml 使该字段为必填项:

properties:
        companyName:
            - NotBlank:
                message: You have to fill this

任何帮助将不胜感激。

【问题讨论】:

    标签: symfony-2.1


    【解决方案1】:

    我得到了解决方案。 Symfony 不喜欢使用下划线来分隔单词(例如 first_name)来命名表单字段。它依赖于 camelCase 命名约定。当我相应地重命名表单字段时,它开始正常工作。

    【讨论】:

    • 三年后,谢谢!经过两天的搜索,这个简短的答案救了我。
    【解决方案2】:

    检查您的 ServiceRegisterForm 以验证您的表单字段是否为“必需”或在实体定义中

    【讨论】:

    • 这似乎不行。我尝试添加表单属性“required”=> true,但没有帮助。
    • 我还应该补充一点,我注意到“密码”类型的 a 字段仅使用 {{ form_errors(form.password.first) }} 呈现错误消息,但不呈现它通过 {{ form_errors(form) }} 在全局错误中。此行为与所有其他字段相反。太奇怪了。它可能是关于什么的?这是密码字段在表单中的定义方式: $builder->add('password', 'repeated', array("type" => "password", "invalid_message" => "The password fields must match", "first_options" => array("label" => "Password"), "second_options" => array("label" => "Retype Password")));
    猜你喜欢
    • 2013-08-18
    • 1970-01-01
    • 2013-09-27
    • 2021-06-13
    • 1970-01-01
    • 2023-03-29
    • 2022-11-09
    • 1970-01-01
    • 2011-10-08
    相关资源
    最近更新 更多