2013-04-14 2 views
0

Je ne trouve pas une bonne documentation sur l '"expression ORM" que je vois à l'intérieur de mes entités, donc je suis un peu confus.Obtenir toutes les lignes en utilisant des expressions ORM dans les entités

J'ai ce dans mon utilisateur entité:

/** 
* @var ArrayCollection $administered 
* 
* @ORM\ManyToMany(targetEntity="Done\PunctisBundle\Entity\Brand", inversedBy="admins") 
* @ORM\JoinTable(name="user_brand_administered") 
**/ 
protected $administered; 

Cela fonctionne très bien, mais je besoin de quelque chose de plus simple, j'ai besoin du var administré pour obtenir toutes les valeurs de la Marque entité au lieu de rejoindre la table user_brand_administrated comme il le fait sur le code ci-dessous. Comment puis-je faire ceci?

Répondre

0

Pourquoi voulez-vous toute la valeur ici? Avec un EntityRepository personnalisé, vous pouvez utiliser une méthode pour récupérer votre objet comme vous le souhaitez.

Par exemple.

class UserRepository extends EntityRepository 
{ 
    public function findOneWithRelation($id) 
    { 
     $qb = $this->createQueryBuilder('u') 
      ->select('u, b') 
      ->leftJoin('u.administered, b') 
      ->where('u.id = :id') 
      ->setParameter('id', $id) 
      ->getQuery() 
      ->getResult(); 
    } 
} 

Et joindre ce référentiel avec votre entité utilisateur:

/** 
* @Entity(repositoryClass = "Path\To\UserRepository") 
*/ 
class User 
{ 
// ... 
} 

Comme cela, vous pouvez récupérer votre utilisateur avec toutes les marques.

J'espère que c'est utile.

Cordialement.

+0

Je pense que vous m'avez mal compris, j'ai juste besoin de toutes les lignes à l'intérieur de la table de la marque formatées comme un objet symfony bien sûr – DomingoSL

Questions connexes