Ich habe Probleme, einen Wert zu validieren, der NULL, aber keine leere Zeichenfolge mit der Symfony2-Validatorkomponente erlaubt.Symfony2-Validierer, NotBlank, aber Null zulassen
Ich habe die Komponente in eine Silex-Anwendung integriert und das Property-Constraint-Ziel verwendet, um einige Eigenschaften meiner Application Entities zu überprüfen (keine Doctrine-Entity).
Ich habe diese statische Methode zu meiner Entity-Klasse hinzugefügt Namen und service_id auf meinem Entity zu validieren Problem ist, dass, wenn service_id
NULL ist, die die NotBlank
Einschränkung tritt in dem gültig sein sollten und meldet eine Verletzung.
static public function loadValidatorMetadata(ClassMetadata $metadata)
{
// name should never be NULL or a blank string
$metadata->addPropertyConstraint('name', new Assert\NotNull());
$metadata->addPropertyConstraint('name', new Assert\NotBlank());
// service_id should either be a non-blank string or NULL
$metadata->addPropertyConstraint('service_id', new Assert\NotBlank());
}
Bottomline, ich bin auf der Suche, wie entweder ein String oder NULL als service_id
zuzulassen, aber nicht eine leere Zeichenfolge zulassen.
PS: Ich habe auch versucht, die MinLength(1)
Einschränkung, aber das erlaubt leere Zeichenfolgen leider.
Es gibt eine Null-Validator, aber es wird Ihnen nicht helfen, da nur NULL gültig sein wird, das heißt, wenn es sich um eine Zeichenfolge (leer oder nicht ist) es wird verletzt werden. Warum nicht einen benutzerdefinierten Validator schreiben? – dbrumann
Ein benutzerdefinierter Validator ist in der Tat eine Option, aber für mich schien es so ein allgemeiner Anwendungsfall, dass es schwer zu glauben ist, dass es unmöglich ist, out of the box zu tun. – ChrisR
Ich auch. In der Tat scheint das sogar falsch (oder zumindest der Wortlaut). NotBlank bedeutet für mich, dass eine Validierung für eine leere Zeichenfolge erfolgen soll. Ich verstehe nicht, warum die Einschränkung null als leeren Wert behandelt. – codepushr