0
我在使用Doctrine2搜索几个实体时遇到了一个问题。Symfony2:通过几个实体查找
我的人加入到其他实体通过电子邮件对“一对多”关系的实体:
<?php
class People
{
// ...
/**
* @ORM\OneToMany(targetEntity="Email", mappedBy="people")
*/
protected $emails;
// ...
}
class Email
{
// ...
/**
* @ORM\ManyToOne(targetEntity="People", inversedBy="emails")
* @ORM\JoinColumn(name="id", referencedColumnName="id")
*/
protected $people;
}
在我PeopleRepository,我尝试做这样的事情:
$queryBuilder = $this->_em->createQueryBuilder()
->select('p')
->from('MyBundle:People', 'p')
->leftJoin('p.emails', 'e')
->where('p.name LIKE :name')
->andWhere('p.firstName LIKE :firstName')
->andWhere('e.email LIKE :email')
->setParameter('name', '%'.$name.'%')
->setParameter('firstName', '%'.$firstName.'%')
->setParameter('email', '%'.$email.'%');
但电子邮件条件似乎不被解释。我希望得到People实体的回复,与其链接的Email实体的电子邮件属性相对应。
我不知道我说的话是否足够清楚。
但是,如果有人了解我的问题,知道我该怎么办?
谢谢:)