ホームページ >バックエンド開発 >PHPチュートリアル >信用履歴取得のために Doctrine に左結合を実装するにはどうすればよいですか?

信用履歴取得のために Doctrine に左結合を実装するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-29 21:52:02975ブラウズ

How to Implement Left Joins in Doctrine for Credit History Retrieval?

Doctrine で左結合を実行する方法

関数 getHistory() で、ユーザーの信用履歴を取得しようとしています。ただし、join 句の最初の構文ではエラーが発生しました。

Doctrine で左結合を実行するには、次の構文を使用できます:

<code class="php">$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin('a.user', 'u')
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');</code>

ここで、 a はエイリアスを表しますUserCreditHistory エンティティの場合、u は結合された User エンティティの別名を表します。 leftJoin() メソッドを使用すると、UserCreditHistory テーブル内で一致しない User テーブルの行を含めることを指定します。

あるいは、この 2 つの間に関連付けがない場合は、エンティティの場合は、次の構文を使用できます:

<code class="php">$qb
    ->select('a', 'u')
    ->from('Credit\Entity\UserCreditHistory', 'a')
    ->leftJoin(
        'User\Entity\User',
        'u',
        \Doctrine\ORM\Query\Expr\Join::WITH,
        'a.user = u.id'
    )
    ->where('u = :user')
    ->setParameter('user', $users)
    ->orderBy('a.created_at', 'DESC');
````
</code>

以上が信用履歴取得のために Doctrine に左結合を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。