Ich habe ein Problem bei der Validierung UniqueEntity
mit mehreren Feldern. Ich habe den folgenden Code:Symfony Form kann mehrere uniqueEntity-Felder nicht validieren
/**
* @ORM\Entity()
* @ORM\Table(name="app_languages", uniqueConstraints={@ORM\UniqueConstraint(name="IDX_LANGUAGE_CONSTRAINT", columns={"language_id", "app_id"})})
*
* @UniqueEntity(fields={"languages", "app"})
*/
class AppLanguages extends AbstractEntity
Wenn ich versuche, das gleiche language_id posten und APP_ID Ich bin ein PDOException > PDOException > UniqueConstraintViolationException
bekomme ich die documentation von symfony geprüft Ich habe auch diese Antwort here aber es funktioniert nicht arbeiten wie es soll. Es gibt auch einen Validator für Symfony\Bridge\Doctrine\Validator\Constraints
unter dem Namensraum getan, aber noch ist dies nicht funktioniert ...
gut das Problem ist, wenn ich nur UniqueEntity für diese 2 Felder verwende, übergibt es die Validierung. Deshalb habe ich nur für die Sicherheit jetzt die Einschränkung hinzugefügt und dann einen try catch verwendet, um den Formularfehler zu setzen (ich weiß, dass es nicht elegant ist, aber es funktioniert ..) Ich habe bereits Daten in der Datenbank. Stell dir vor, ich habe app_id = 1 lang_id = 1 -> gespeichert app_id = 1 lang_id = 2 -> gespeichert lang_id = 2 -> fehlgeschlagen. Wenn die Formularvalidierung nicht funktioniert, sollte die sql-Einschränkung für den Moment ausreichen. –
@HerrNentu 'Mein Schlechter dann missverstand ich das Problem (dachte, du hast nicht verstanden warum du eine PDO Exception bekommst, während es andersherum ist). Ich fand diesen geschlossenen Bugreport, der eine interessante Schlussfolgerung hat, die dein Problem erklären könnte : [link] (https://github.com/symfony/symfony/issues/6727) –