学说2:如何通过关联的价值来搜索实体?

joh*_*ack 9 php symfony doctrine-orm

假设我有一个Account实体和一个AccountData实体(存储一些较少使用的属性,如性别等).

Account和AccountData之间的关系是一对一的,帐户"拥有"AccountData.

我试图弄清楚,使用Doctrine 2/Symfony 2,如何根据AccountData中的属性提取帐户.

例如,如何使用AccountData-> gender ='female'搜索所有帐户?

Jua*_*osa 17

像这样使用Doctrine的Query Builder应该可以解决问题:

$repository = $this->getDoctrine()->getRepository('YourBundle:Account');

$query = $repository->createQueryBuilder('a')
    ->join('a.AccountData', 'd')
    ->where('d.gender = :gender')
    ->setParameter('gender', 'female')
    ->getQuery();

$female_accounts = $query->getResult();
Run Code Online (Sandbox Code Playgroud)

您可以使用存储库类来查看http://symfony.com/doc/current/book/doctrine.html#joining-to-related-records以获取示例.

希望能帮助到你.