Monday, April 16, 2012

Symfony2 validator, NotBlank but allow null

I'm having trouble validating a value to allow NULL but not an empty string with the Symfony2 validator component.



I've integrated the component in a Silex application and used the Property Constraint target to validate some properties of my Application Entities (not a Doctrine Entity).



I've added this static method to my Entity class to validate name and service_id on my Entity, problem is that when service_id is NULL which should be valid the NotBlank constraint kicks in and reports a violation.



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, I'm looking how to allow either a String or NULL as service_id but not allow an empty string.



PS: I've also tried the MinLength(1) constraint but that allows empty strings unfortunately.





No comments:

Post a Comment