У меня есть 3 таблицы «пользователя», «Событие» ПРИНЦИП «typeEvents» Я хотел бы получить список пользователей с одним где (ex: type = "Festival"). Также пользовательский объект находится в другом комплекте, который содержит события и typeEvents. но это не проблема.я не могу построить конкретный запрос в хранилище с QueryBuilder
В одном из Entity у меня есть много отношения TooMany ... поэтому я не могу выполнить этот запрос построителя запросов.
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;
[...]
Таким образом, в userRepository Пытаюсь с:
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();
}
И я получаю эту ошибку: [Semantical Error] line 0, col 78 near 'BISSAPBenevolesBundle:TypeEvents.type': Error: 'BISSAPBenevolesBundle:TypeEvents' is not defined.