1

エンティティに次の制約を追加しました。

 * @ORM\Table(name="link", uniqueConstraints={@ORM\UniqueConstraint(name="unique_link_idx", columns={"first_form_id", "first_question_id","last_form_id","last_question_id"})})
 * @UniqueEntity(fields={"firstForm", "firstQuestion","lastForm","lastQuestion"}, message="Cette liaison existe déjà !")
 * @ORM\Entity(repositoryClass="Ineat\LinkQuestionBundle\Entity\LinkRepository")

UniqueEntity 制約は、それを追加する前に、まったく同じエンティティを DB に挿入しようとしたときに、整合性制約について DBALException が発生したため、うまく機能します。それ以来、この例外はもうありません。フォームは検証されてい{{ form_errors(form) }}ませんが、メッセージは出力されません。

チェックイン後、コントローラー$form->getErrors()は空の配列を返します$form->getErrorsAsString()が、UniqueENTity 制約が含まれています。

UniqueEntity の制約エラー メッセージを表示するにはどうすればよいですか

4

2 に答える 2

2

子フォームの 1 つで UniqueEntity の検証が失敗しているように見えるため、...

(エラー メッセージは にのみ存在し、 には存在しgetErrorsAsStringないためgetErrors)

...子フォームのエラーを親フォームで使用できるようにするには、エラーバブリングを使用します。

$formBuilder->add('child-form','child-form-type', array(
       'error_bubbling' => true,
   )
)

...または子フォーム内:

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'error_bubbling' => true,
    ));
}
于 2013-06-25T13:01:28.510 に答える