2

Symfony 2.1には単純なフォームがあり、それを送信すると、いくつかのフィールドを必須として指定したため、フォームページにいくつかのエラーメッセージが表示されると思います。

ただし、{{ form_errors(form.company_name) }}その特定のフィールドのエラーメッセージを表示するアプローチは私には機能しません。メッセージは表示されません。ただし、を使用する{{form_errors(form)}}と、すべてのエラーメッセージが1か所に表示されます。私は{{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

どんな助けでも大歓迎です。

4

2 に答える 2

7

私は解決策を得ました。first_name のように単語を区切るためにアンダースコアを使用してフォーム フィールドに名前を付けると、symfony はそれを好まない。キャメルケースの命名規則に依存しています。それに応じてフォームフィールドの名前を変更すると、正しく機能し始めました。

于 2013-02-03T04:37:33.217 に答える
0

ServiceRegisterForm をチェックして、フォーム フィールドが「必須」またはエンティティ定義に含まれているかどうかを検証します

于 2013-01-25T07:15:08.780 に答える