ホームページ > バックエンド開発 > PHPチュートリアル > Doctrine で左結合を実行する方法: コード例付きガイド

Doctrine で左結合を実行する方法: コード例付きガイド

Mary-Kate Olsen
リリース: 2024-10-30 05:02:02
オリジナル
412 人が閲覧しました

How to Perform Left Joins in Doctrine: A Guide with Code Examples

Doctrine での左結合の実行

Doctrine は、左結合を実行する機能を含む、SQL クエリを作成および実行するための包括的な機能を提供します。この記事では、Doctrine を使用して左結合を実行する方法を示し、コード内で発生する可能性のある問題点に対処します。

左結合構文

エンティティ間の関連付けを利用する場合、左結合の構文は簡単です:

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

    return $qb->getQuery()->getResult();
}</code>
ログイン後にコピー

この例では、結合結果に条件が適用され、左結合が使用されるか単に結合が使用されるかは関係ありません。

関連付けなしの左結合

使用可能な関連付けがない場合、左結合クエリは次のようになります:

<code class="php">public function getHistory($users) {
    $qb = $this->entityManager->createQueryBuilder();
    $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');

    return $qb->getQuery()->getResult();
}</code>
ログイン後にコピー

このクエリの結果は次のような配列になります。

<code class="php">array(
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    // ...
)</code>
ログイン後にコピー

以上がDoctrine で左結合を実行する方法: コード例付きガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート