Me gustaría aplicar validadores en las propiedades de un objeto solo cuando el valor no está vacío, es decir.Cómo permitir valores vacíos en los validadores de Symfony2
Ahora estándar de comportamiento de Symfony:
class Entity
{
/**
* @ORM\Column(type="string", nullable=true)
* @Assert\Email()
*/
protected $email;
(...)
}
que el objeto no pasará la validación si un correo electrónico es nulo, o cadena vacía, ¿hay una manera de contar validador de hacer valer como válido, un valor vacío, y validar solo si el campo tiene datos?
PD Sé que puedo escribir el validador de devolución de llamada, pero escribir la devolución de llamada para cada campo solo para tener la función "allowEmpty" no es tan agradable.
Esta no es la respuesta correcta. La opción "requerida" impone solo la validación del lado del cliente. – TyrionLannister
@TyrionLannister Estás en lo cierto. Sin embargo, ninguno de los validadores predeterminados da como resultado que un valor vacío se trate como inválido, excepto cuando se tienen restricciones 'NotNull()' y 'NotEmpty()'. Viendo que el asker no tenía ninguna de esas restricciones, estaba implícito que el problema era con el atributo HTML5 'required' del lado del cliente. – gilden
@gilden con todo el debido respeto, el atributo 'required' no tiene nada en común con el valor vacío aprobado. Solo se utiliza mediante la validación del lado del cliente HTML5 y no está relacionada con la validación (la del lado del servidor). –