2016-04-01 18 views
2

ile depoda belirli bir istek inşa edemeyiz örn .: type = "Festival"). Ayrıca, kullanıcı varlığı, Etkinlik ve türEtkinliklerin başka bir paketindedir. ama bu sorun değil.I ("<strong>Olaylar</strong>" bir "<strong>typeEvents</strong>" Ben bir yere sahip kullanıcı listesini almak istiyorum, ben 3 tablolar "<strong>Kullanıcı</strong>" sahip querybuilder

Varlıklardan birinde, birden çokTamım ilişkisi var ... bu nedenle bu sorgu oluşturucu isteğini yapamıyorum.

User.php:

class User extends BaseUser 
{ 

    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    protected $id; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="pseudo", type="string", length=30, nullable=true) 
    */ 
    private $pseudo; 

    /** 
    * @ORM\Column(name="name", type="string", length=255) 
    * 
    * @Assert\NotBlank(message="Please enter your name.", groups={"Registration", "Profile"}) 
    * @Assert\Length(
    *  min=3, 
    *  max=255, 
    *  minMessage="The name is too short.", 
    *  maxMessage="The name is too long.", 
    *  groups={"Registration", "Profile"} 
    *) 
    */ 
    private $name; 

    /** 
    * @var ArrayCollection $events 
    * @ORM\OneToMany(targetEntity="BISSAP\BenevolesBundle\Entity\Events", mappedBy="user", cascade={"persist", "remove", "merge"}) 
    */ 
    private $events; 
    [...] 

Events.php:

class Events 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * 
    * @ORM\ManyToOne(targetEntity="TypeEvents", inversedBy="events", cascade={"persist"}) 
    * 
    */ 
    private $typeEvents; 

    /** 
    * 
    * @ORM\ManyToOne(targetEntity="GenreEvents", inversedBy="events", cascade={"persist"}) 
    * 
    */ 
    private $genreEvents; 

    /** 
    * 
    * @ORM\ManyToOne(targetEntity="BISSAP\UserBundle\Entity\User", inversedBy="events", cascade={"persist"}) 
    * 
    */ 
    private $user; 
    [...] 

TypeEvents.php:

class TypeEvents 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var ArrayCollection $events 
    * @ORM\OneToMany(targetEntity="Events", mappedBy="typeEvents", cascade={"persist", "remove", "merge"}) 
    */ 
    private $events; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="type", type="string", length=255) 
    */ 
    public $type; 
    [...] 

Yani içinde userRepository Birlikte çalışıyorum: ile deneyin [Semantical Error] line 0, col 78 near 'BISSAPBenevolesBundle:TypeEvents.type': Error: 'BISSAPBenevolesBundle:TypeEvents' is not defined.

cevap

2

:

public function findUserEvent() 
    { 
     $qb = $this 
      ->createQueryBuilder('u') 
      ->leftJoin('u.events', 'ev') 
      ->addSelect('ev') 
      ->where('BISSAPBenevolesBundle:TypeEvents.type = :type') 
      ->setParameter('type', 'Festival') 
     ; 

     return $qb->getQuery()->getResult(); 
    } 

Ve bu hatayı alıyorum

public function findUserEvent() 
    { 
     $qb = $this 
      ->createQueryBuilder('u') 
      ->leftJoin('u.events', 'ev') 
      ->leftJoin('ev.types', 'evt') 
      ->where('evt.type = :type') 
      ->setParameter('type', 'Festival') 
     ; 

     return $qb->getQuery()->getResult(); 
    } 

Umut bu yardım

İlgili konular