Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/10/2012, 14:37
oniakai
 
Fecha de Ingreso: julio-2011
Mensajes: 7
Antigüedad: 12 años, 9 meses
Puntos: 0
- Problema con entidades

Hola!! estoy descubriendo este genial framework y he decidido probar a construir una app, que es la mejor manera de aprender,

El problema es a la hora de crear las entidades y las relaciones, pongo un ejemplo, imaginad que existe una entidad Fiesta...

Código:
/**
 * Acme\PartyBundle\Entity\Party
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="Acme\PartyBundle\Entity\PartyRepository")
 */
class Party
{
    (...)
    
    /**
     * @var integer $organizer
     *
     * @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\User")
     * @ORM\JoinColumn(name="user_id", referencedColumnName="id")
     */
    private $organizer;

    /**
     * @var array $invitees
     *
     * @ORM\ManyToMany(targetEntity="Acme\UserBundle\Entity\User")
     * @ORM\JoinTable(name="party_invitees",
     *     joinColumns={@ORM\JoinColumn(name="party_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")}
     *     )
     */
    private $invitees;

    /**
     * @var array $gifts
     *
     * @ORM\ManyToMany(targetEntity="Acme\PartyBundle\Entity\Gift")
     * @ORM\JoinTable(name="party_gifts",
     *     joinColumns={@ORM\JoinColumn(name="party_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="gift_id", referencedColumnName="id")}
     *     )
     */
    private $gifts;

    (...)
}
Como veis esta definicion de la entidad Party ??

Evidentemente en el constructor a $invitees y $gifts se les asigna un arrayCollection vacío, para ir rellenando los invitados a la fiesta y los regalos que llevan...

la clase User tiene estos dos arrayCollection también

Código:
    /**
     * @var string $parties
     *
     * @ORM\ManyToMany(targetEntity="Acme\PartyBundle\Entity\Party")
     * @ORM\JoinTable(name="user_parties",
     *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="party_id", referencedColumnName="id")}
     *     )
     */
    private $parties;

    /**
     * @var string $gifts
     *
     * @ORM\ManyToMany(targetEntity="Acme\PartyBundle\Entity\Gift")
     * @ORM\JoinTable(name="user_gifts",
     *     joinColumns={@ORM\JoinColumn(name="user_id", referencedColumnName="id")},
     *     inverseJoinColumns={@ORM\JoinColumn(name="gift_id", referencedColumnName="id")}
     *     )
     */
    private $gifts;
y la clase Gift más o menos esto

Código:
    /**
     * @var string $creator
     *
     * @ORM\ManyToOne(targetEntity="Acme\UserBundle\Entity\User")
     */
    private $creator;

    /**
     * @var string $party
     *
     * @ORM\ManyToOne(targetEntity="Acme\PartyBundle\Entity\Party")
     */
    private $party;
Mi idea es mostrar, por ejemplo, los asistentes a una fiesta en una página con los detalles del evento y los regalos que hayan traido, pero las relaciones entre entidades no son mi fuerte y menos en un framework nuevo para mi...

Si además alguien puede echarme un cable con votos que pueda hacer cada usuario sobre un regalo, algo simple, como por ejemplo voto positivo y voto negativo... es que creo que no lo estoy haciendo bien...

Gracias!!!

Última edición por oniakai; 18/10/2012 a las 14:43 Razón: añadido prefijo, supongo para tags