問題1アクセスエラーが、私はAjaxの提出を経て登録フォームを構築したいのですが、フォーム
を提出しました。登録作業は$form->isValid()
です。しかし、フォームが登録に失敗した場合は、これらのエラーをajax経由で返す必要があります。
if ($form->isValid()) {
}else{
$errors = $form->getErrors();
// return some json encoded errors here
}
$form->getErrors()
フォーム(この場合には、私は短すぎるのユーザ名とテストしてい)検証していないにもかかわらず、空の配列を返します。
問題2
は、私が持っている第二の問題は、フォームが検証場合ということですが、エラーが依然として存在します。たとえば、誰かが同じ値を送信しようとする固有のフィールドです。
if ($form->isValid()) {
$em = $this->getDoctrine()->getEntityManager();
$em->persist($form->getData());
$em->flush();
// error could be a username submitted more than once, username is unique field
}else{
// ...
}
どのようにエラーを捕捉してjson経由で返すことができますか?
2は、どのようにバリデータは、誰かがすでにテーブルでそのユーザー名を使用していることを知っているだろうか?バリデーターはデータが正しいかどうか、データが既に存在するかどうか、または両方があるかどうかを確認したと思います。 – ed209
バリデーターは、あなたが行うようにコード化した任意のタイプのバリデーションを実行できます。もちろん、既に指摘したように、一意性のバリデータはUniqueEntityです。 –