我正在使用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
答案 0 :(得分:0)
答案 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()
。