如何与Symfony 2联系?

时间:2013-04-08 22:06:58

标签: php symfony doctrine-orm

我有一个加入的查询:

$query = $this
    ->getEm()
    ->getRepository("MovementHeader")
    ->createQueryBuilder('d')
    ->leftJoin('MovementDetail', 'stockmovementdetail', 'WITH', 'stockmovementdetail.movementId = d.id')

现在如何达到“movingdetail”?

1 个答案:

答案 0 :(得分:2)

由于你的问题很模糊,我会回答一般。如果您需要更具体的信息,请提供更具体的信息。

假设移动标题有一个链接到MovementDetail实体的字段(让我们称之为movementDetail)。您可以执行以下操作:

$query = $this
    ->getEm()
    ->getRepository("MovementHeader")
    ->createQueryBuilder('mh')
    ->select('mh','md')
    ->innerJoin('mh.movementDetail','md')
    ->where(/* Now in the where cause, 
               you can select what ever 
               you want from mh or md*/)
    ->setParameters(array(/* ... */))

以下是您可以使用的一些示例:

->where('mh.id = :id') //Could used when you want to retrieve a specific header
->where('md.field IN (:list)') // Where you want to retrive all the mh 
                               // (and their md) that contains the fields

你也可以做这样的多个条件

->where('mh.field = :value AND md.otherField = :value2')

然后,您必须相应地设置参数。

获得结果后,您可以使用普通的getter和setter访问字段。