Doctrine orm 条令:在findBy中是否有使用关联实体的方法
我有一个与一个或多个“经理”实体关联的实体“员工”。 因此,我在employee实体中使用联接表和关联,如下所示:Doctrine orm 条令:在findBy中是否有使用关联实体的方法,doctrine-orm,doctrine,associations,entity,findby,Doctrine Orm,Doctrine,Associations,Entity,Findby,我有一个与一个或多个“经理”实体关联的实体“员工”。 因此,我在employee实体中使用联接表和关联,如下所示: /** * @ManyToMany(targetEntity="manager_entity") * @JoinTable(name="manager_employees", * joinColumns={@JoinColumn(name="emp_id", referencedColumnName="id")}, * inverseJoinColumns={@JoinColumn
/**
* @ManyToMany(targetEntity="manager_entity")
* @JoinTable(name="manager_employees",
* joinColumns={@JoinColumn(name="emp_id", referencedColumnName="id")},
* inverseJoinColumns={@JoinColumn(name="manager_id", referencedColumnName="id", unique=true)}
* )
*/
protected $managers;
这已经起作用了。但现在我想检索特定经理的所有员工。
因此,我想问是否有可能这样做:
$mgr = $this->em->getRepository ( 'Entities\manager' )->findOneBy ( array (
"alias" => $this->get('alias'));
// only pseudo code - i know that $managers is a list of managers and $mgr cannot be compared to that
$empList = $this->em->getRepository('Entities\employee')->findBy(array("managers" => $mgr));
向您的存储库中添加如下功能:
public function findByManager($managerId)
{
return $this->getEntityManager()
->createQueryBuilder()
->from('employee', 'e')
->innerJoin('e.managers m')
->where('m.Id = :managerId')
->setParameter('managerId', $managerId)
->getQuery()
->getResult();
}
然后使用:
$employee = $repository->findByManager($manager->getId());