Doctrine2 findBy ...在哪里

时间:2014-07-28 11:53:18

标签: php mysql doctrine-orm

我正在使用Doctrine2 (Symfony2),在我的控制器中,我为一个表(MySQL)使用了一个存储库,它确实有效。我想更多地添加一个存储库,并找到一个记录,其中一个字段等于第一个(上一个)表中的字段。 类似的东西:

SELECT * FROM table2 where 'table2.columnX' = 'table1.columnX';


$em = $this->getDoctrine()->getManager();
$employee = $em->getRepository('SomethingBundle:Employee')->find($id); [table1 -- it works!]

如何:

$repository2 = $this->getDoctrine()
    ->getRepository('NenadStoreBundle:Requirements');


$requirements = $repository2->findById *----where columnX = employeecolumnx

2 个答案:

答案 0 :(得分:0)

我认为不可能这样做。使用查询构建器http://docs.doctrine-project.org/en/2.0.x/reference/query-builder.html

答案 1 :(得分:0)

使用findBy(array $criteria),如果您已经知道“employeecolumnx”值,则可以执行所需操作。

$em = $this->getDoctrine()->getManager();
$employee = $em->getRepository('SomethingBundle:Employee')->find($id);
$requirements = $em->getRepository('NenadStoreBundle:Requirements')->findBy(
    array(
        'RequirementColumnX' => $employee->getEmployeeColumnX()
    )
);

使用您需要使用的真实方法名称更改$employee->getEmployeeColumnX()