Ich habe die folgende Entitätsklasse in meiner Anwendung:
%Vor%Die @ UniqueEntity-Einschränkung wird ignoriert. Ich habe verschiedene Geschmacksrichtungen ausprobiert, einschließlich:
%Vor%und
%Vor%und gemäß der Symfony2-Dokumentation hier: Ссылка
%Vor%Nichts, was ich tue, funktioniert. Anstatt einen Formularüberprüfungsfehler wie erwartet zu erhalten, erhalte ich die folgende Ausnahme:
SQLSTATE [23000]: Verletzung Integritätsbedingung: 1062 Eintrag duplizieren '[email protected]' für den Schlüssel 'UNIQ_D8183973E7927C74'
Das ist einfach falsch! Kann jemand dieses Problem beheben?
Das Problem wurde wie folgt gelöst:
%Vor%Die Registrierungsgruppen fehlten und ich musste sie in zwei separate Anmerkungen aufteilen.
Ein weiterer Grund für dieses Problem ist, wenn Sie Formularsammlungen verwenden und ein Unterformular einfügen, das eine verknüpfte Entität behandelt, müssen Sie cascade_validation
auf true
im Stammverzeichnis und allen Unterformularen festlegen.
Siehe den Hinweis in der Symfony-Dokumentation :
%Vor%Um die Validierung für CategoryType zu aktivieren, fügen Sie die Option
hinzucascade_validation
zuTaskType
:
Aktualisierung:
Um sicherzustellen, dass Ihre untergeordneten Entitäten validiert werden, gibt es sogar einen besseren Weg. Aus genau diesem Grund stellt Symfony die Valid
Einschränkung bereit. Aus der Dokumentation :
Gültig
Diese Einschränkung wird verwendet, um die Validierung für Objekte zu aktivieren, die als Eigenschaften für ein zu prüfendes Objekt eingebettet sind. Auf diese Weise können Sie ein Objekt und alle damit verknüpften Unterobjekte validieren.
Tags und Links symfony constraints