2

プロジェクトで Symfony フォームを使用しています。コードは次のとおりです。

フォーム:

public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('name', 'text', array('required' => true, 'error_bubbling' => true));
    $builder->add('email', 'email', array('required' => true, 'error_bubbling' => true));
    $builder->add('message', 'textarea', array('required' => true, 'error_bubbling' => true));
}

public function getDefaultOptions(array $options)
{
    $constraintCollection = new Collection(array(
        'name' => new NotBlank(array("message" => "Please fill out Name field")),
        'email' => array(new Email(array("message" => "Invalid Email", "checkMX" => true)),
                         new NotBlank(array("message" => "Please fill out Email field"))),
        'message' => new NotBlank(array("message" => "Please fill out Message field"))
    ));

    return array(
        "validation_constraint" => $constraintCollection,
    );
}

テンプレート(小枝) -

<form action="{{ path('somePath') }}" method="post">
        <p>Contact Us :</p>
          {{ form_errors(form.name) }}
        <p> {{ form_label(form.name, "Your Name") }}
            {{ form_widget(form.name) }}
        </p>
          {{ form_errors(form.email) }}
        <p> {{ form_label(form.email, "Your Email") }}
            {{ form_widget(form.email) }}
        </p>
          {{ form_errors(form.message) }}
        <p> {{ form_label(form.message, "Your Message") }}
            {{ form_widget(form.message) }}
        </p>
        {{ form_rest(form) }}
    <div class="submit-button">
      <button class="button">Submit</button>
    </div>
</form>

空のフォームを送信しようとしたときに、エラー メッセージが表示されなかったので、追加しました

{{ form_errors(form) }}<form>、私が見たように、ここで
しかし、今では、それぞれのフィールドではなく、トップの位置にフォームエラーが表示されています。
私はここで何か間違っていますか?御時間ありがとうございます。

4

1 に答える 1

4

フォーム定義で 'error_bubbling' => true オプションを削除してください。このオプションは、フィールドのエラーがフォームに「渡される」ようにします。

于 2012-09-06T08:14:56.947 に答える