Foros del Web » Programando para Internet » PHP » Symfony »

[SOLUCIONADO] Validar un Collection en symfony2

Estas en el tema de Validar un Collection en symfony2 en el foro de Symfony en Foros del Web. Que tal amigos del foro, estoy tratando de validar una collection de correos y me he enfrentado con el problema que no me los valida. ...
  #1 (permalink)  
Antiguo 11/08/2014, 15:47
 
Fecha de Ingreso: septiembre-2013
Mensajes: 61
Antigüedad: 10 años, 7 meses
Puntos: 0
Pregunta Validar un Collection en symfony2

Que tal amigos del foro, estoy tratando de validar una collection de correos y me he enfrentado con el problema que no me los valida.
Validacion en yml:
Código yml:
Ver original
  1. properties:      
  2.      emails:
  3.             - Collection:
  4.                 fields:
  5.                     media:
  6.                         - Email:
  7.                             message: Correo electrónico no valido
  8.                             checkMX: true
  9.  
  10.                 allowMissingFields: true
  11.                 allowExtraFields: true
Como pueden observar si yo comento la instrucion allowExtraFields: true, me muestra el siguiente error: "This field was not expected". Pero si la pongo no me valida los correos. Alguien podria indicarme que estoy haciendo mal. Segun entiendo la instruccion allowExtraFields: true sirve para tener campos adicionales.
  #2 (permalink)  
Antiguo 12/08/2014, 09:25
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Validar un Collection en symfony2

Recuerda que la propiedad que estas validando debe ser un arreglo o un objeto que implemente alguna interfaz iterable de php.
Si quiere publica tu entidad para ver mas detalles
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #3 (permalink)  
Antiguo 12/08/2014, 10:13
 
Fecha de Ingreso: septiembre-2013
Mensajes: 61
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Validar un Collection en symfony2

Publico parte de la entidad que me interesa del correo:
Código PHP:
    /**
    * @Assert\Valid
    * @ORM\OneToMany(targetEntity="AbcMemberMediaCommunication", mappedBy="member", cascade={"persist", "remove"})
    */
    
protected $emails;

    public function 
__construct()
    {
        
$this->emails = new DoctrineCommonCollectionsArrayCollection();
    }

    public function 
setEmails(DoctrineCommonCollectionsCollection $emails
    {
        
        
$this->emails $emails;
        foreach(
$emails as $email){
            
$email->setMember($this);
        }
        return 
$this;    
    }

    public function 
getEmails() {
        return 
$this->emails;
    } 

Y estos son los atributos que tengo en la entidad donde tengo los correos:
Código PHP:
private $id;
private 
$media;
private 
$createdDate;
private 
$mediaType;
    
/*
     * @ORM\ManyToOne(targetEntity="AbcMembers", inversedBy="emails")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="member", referencedColumnName="id")
     * })
     */
    
private $member;
private 
$primaryMedia

Última edición por carlosml08; 12/08/2014 a las 10:38
  #4 (permalink)  
Antiguo 12/08/2014, 10:57
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 10 meses
Puntos: 379
Respuesta: Validar un Collection en symfony2

Primero que nada la propiedad $email es un relación con otro objeto, asi que para validar necesitas usar la restricción Valid: http://symfony.com/doc/current/refer...nts/Valid.html

Por otra parte tu Entidad debe de lucir algo asi.
Código PHP:
Ver original
  1. public function __construct()
  2.     {
  3.         $this->emails = new Doctrine\Common\Collections\ArrayCollection();
  4.     }
  5.  
  6.     public function setEmails(\loquesea\Entity\MediaCommunication $emails)
  7.     {
  8.         $emails->setMember($this);
  9.         $this->emails->add($emails);
  10.        
  11.         return $this;    
  12.     }
  13.  
  14.     public function getEmails() {
  15.         return $this->emails;
  16.     }
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.
  #5 (permalink)  
Antiguo 12/08/2014, 14:05
 
Fecha de Ingreso: septiembre-2013
Mensajes: 61
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Validar un Collection en symfony2

Me ha resultado con la restricción Valid, ya no tuve que utilizar el collection. Muchas gracias de antemano.

Etiquetas: collection, validation
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:17.