0

結合されたクエリがあります:

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

「movementdetail」に到達する方法は?

4

1 に答える 1

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')

次に、それに応じてパラメーターを設定する必要があります。

結果を取得したら、通常のゲッターとセッターを使用してフィールドにアクセスできます。

于 2013-04-08T23:42:28.053 に答える