」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何解決 Doctrine 左連接期間的「Expected Doctrine\\ORM\\Query\\Lexer::T_WITH, got 'ON'\」錯誤?

如何解決 Doctrine 左連接期間的「Expected Doctrine\\ORM\\Query\\Lexer::T_WITH, got 'ON'\」錯誤?

發佈於2024-11-08
瀏覽:765

How to Resolve the \

如何在Doctrine 中執行左連接

當使用複雜的資料模型時,有必要透過建立多個表之間的關係來從多個表中檢索資料。左連接允許您從一個表中獲取所有行,並且僅從另一個表中獲取匹配的行。

遇到的問題

在Doctrine 中嘗試左連接時可能出現的常見錯誤正在接收以下語法錯誤:

[Syntax Error] line 0, col 98: Error: Expected Doctrine\ORM\Query\Lexer::T_WITH, got 'ON'

當“連接子句中使用“ON”而不是“WITH”。要解決此問題,請將“ON”替換為“WITH”,如下所示:

$qb->leftJoin('User\Entity\User', 'u', \Doctrine\ORM\Query\Expr\Join::WITH, 'a.user = u.id')

實現左連接

要在Doctrine 中執行左連接,有兩種方法:

具有關聯:

如果您的實體與要加入的表有關聯,則可以使用以下語法:

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

在這種情況下,「Credit\Entity\UserCreditHistory#user」表示兩個實體之間的關聯。

沒有關聯:

如果不存在關聯,可以使用以下語法:

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

此查詢從兩個表中擷取記錄並傳回包含以下格式陣列的結果集:

array(
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    // ...
)
最新教學 更多>
  • 如何偵測 Go 標準輸入 (Stdin) 中的資料可用性?
    如何偵測 Go 標準輸入 (Stdin) 中的資料可用性?
    使用Go 檢測標準輸入(Stdin) 中的資料可用性在Go 中,可以使用以下技術檢查標準輸入流(os.Stdin) 中的資料:驗證其檔案大小。它的工作原理如下:os.Stdin 可以像任何常規文件一樣對待,允許我們檢查其屬性。為此,我們使用 os.Stdin.Stat() 檢索 FileInfo 物...
    程式設計 發佈於2024-11-08
  • Wasp:Web 開發中 Django 的 JavaScript 答案
    Wasp:Web 開發中 Django 的 JavaScript 答案
    Wasp v Django: Building a full stack application just got a lot easier Hey, I’m Sam, a backend engineer with a lot of experience with Django....
    程式設計 發佈於2024-11-08
  • 如何在沒有鍵盤中斷的情況下透過按鍵中斷 While 迴圈?
    如何在沒有鍵盤中斷的情況下透過按鍵中斷 While 迴圈?
    透過按鍵中斷While 循環在使用while 循環讀取串行資料並將其寫入CSV 檔案的場景中,您可能希望為使用者提供終止循環以停止資料收集的選項。本文探討了在不明確使用鍵盤中斷的情況下實現此類功能的技術。 一個簡單的方法是利用 try- except 區塊來處理 KeyboardInterrupt ...
    程式設計 發佈於2024-11-08
  • 週 oot 訓練營學習
    週 oot 訓練營學習
    我決定邁出大膽的一步,參加由 LuxDevHQ 組織的我的第一個資料職業訓練營。這是一個為期 5 週的訓練營,旨在培養實踐資料技能。該訓練營旨在讓人們接觸至少 4 個專業領域的各種資料技能。 第一周以資訊會議開始,我進行了專案定向,並向我介紹了該專案並了解了整個專案的期望。 在這第一周,我學到了...
    程式設計 發佈於2024-11-08
  • 如何使用 Homebrew 和 jenv 在 Mac OS X 上管理多個 Java 版本?
    如何使用 Homebrew 和 jenv 在 Mac OS X 上管理多個 Java 版本?
    在Mac OS X 上管理多個Java 版本由於Java 管理其安裝的方式,在Mac OS X 上安裝多個Java 版本可能是一項挑戰。不過,有一個解決方案可以讓您輕鬆安裝和管理不同的 Java 版本:Homebrew。 使用 Homebrew 和 jenvHomebrew 是一個套件管理器,可以簡...
    程式設計 發佈於2024-11-08
  • 如何建立 React 應用程式?安裝與環境設置
    如何建立 React 應用程式?安裝與環境設置
    在開始使用 React 建立應用程式之前,擁有正確的開發環境非常重要。以下是幫助您入門的分步指南: 步驟 1. 安裝 Node.js 和 npm 設定 React 環境的第一步是安裝 Node.js,因為它提供了在瀏覽器外部執行程式碼所需的 JavaScript 執行程式時。當您安裝 Node.js...
    程式設計 發佈於2024-11-08
  • python 並發.futures
    python 並發.futures
    未来 Future 是一个容器,可以保存计算结果或计算期间发生的错误。创建 future 时,它​​以 PENDING 状态开始。该库不打算手动创建此对象,除非出于测试目的。 import concurrent.futures as futures f = futures.Futu...
    程式設計 發佈於2024-11-08
  • 使用純 Javascript 只需幾行即可實現飛向購物車的動畫。
    使用純 Javascript 只需幾行即可實現飛向購物車的動畫。
    最近,我偶然發現了一個舊教程,展示了使用 jQuery 實現飛行到購物車的動畫。我想透過使用純 JavaScript 實現相同的效果來挑戰自己。 我創建了一個包含產品和購物車圖示的簡單佈局。樣式並不重要,所以我們不會在這裡討論它。 訣竅是複製產品圖像,將其添加到產品元素之前。然後計算克隆圖像和購...
    程式設計 發佈於2024-11-08
  • Bokeh 是一個有趣的 Python 資料視覺化資料工具
    Bokeh 是一個有趣的 Python 資料視覺化資料工具
    資料視覺化在解釋大量資訊方面發揮關鍵作用。 Bokeh 等工具已成為建立互動式儀表板和報告的流行解決方案。每個工具都具有獨特的優勢,具體取決於您專案的複雜性和您首選的程式語言。在本文中,我們將深入研究每個工具,然後專注於 Bokeh,包括實踐範例和雲端中的部署。 以便... 什麼是散景? Bok...
    程式設計 發佈於2024-11-08
  • django-components v 模板現在與 Vue 或 React 相當
    django-components v 模板現在與 Vue 或 React 相當
    嘿,我是 Juro,我是 django-components 的維護者之一。在 v0.90-0.94 版本中,我們添加了一些功能,使模板中的元件使用更加靈活,類似於 JSX / Vue。 (此資訊已經有點過時了(一個月前發布;最新的是v0.101),因為我正忙著添加對JS / CSS 變數、Typ...
    程式設計 發佈於2024-11-08
  • 如何在 Go 中解密 AES ECB 模式加密?
    如何在 Go 中解密 AES ECB 模式加密?
    Go 中的AES ECB 加密Go 中的AES ECB 加密package main import ( "crypto/aes" "fmt" ) func decryptAes128Ecb(data, key []byte) []byte { ...
    程式設計 發佈於2024-11-08
  • 在 GitHub-echo 中實現 TOML 配置支持
    在 GitHub-echo 中實現 TOML 配置支持
    介绍 最近,我有机会通过添加对 TOML 配置文件的支持来增强 github-echo 命令行工具。此功能允许用户在 .github-echo-config.toml 文件中设置持久默认选项,从而减少每次使用该工具时手动输入重复配置的需要。在这篇文章中,我将向您介绍我在该功能上的经...
    程式設計 發佈於2024-11-08
  • 如何使用 SimpleXML 和 DOMDocument 刪除 XPath 節點?
    如何使用 SimpleXML 和 DOMDocument 刪除 XPath 節點?
    SimpleXML:刪除XPath 節點在本文中,我們將探討如何使用以下方法有效地從XML 文件中刪除父節點: SimpleXML 和XPath。 了解 SimpleXML限制提供的程式碼嘗試使用 SimpleXML 在透過 XPath 找到父節點後刪除它。然而,SimpleXML 的 unset(...
    程式設計 發佈於2024-11-08
  • 建立一個 React Hook 以任意角度旋轉影像
    建立一個 React Hook 以任意角度旋轉影像
    在Web開發中,您可能需要旋轉影像,這在CSS中很容易做到。像這樣的簡單程式碼變換:rotate(90deg);。但是如果我們想用 JS 來做呢? TLDR 將圖像繪製到瀏覽器環境中的畫布上並旋轉它。但在此之前,我們需要做一些數學運算來保持原始影像的長寬比。 核 ...
    程式設計 發佈於2024-11-08
  • Lithe 中間件:它是如何運作的以及如何創建自己的中間件
    Lithe 中間件:它是如何運作的以及如何創建自己的中間件
    中间件提供了一种方便的机制来检查和过滤进入应用程序的 HTTP 请求。 例如,Lithe 包含检查用户是否经过身份验证的中间件。如果没有,中间件会将用户重定向到登录屏幕。如果用户通过身份验证,中间件将允许请求继续。 中间件如何在 Lithe 中工作 在 Lithe 中,中间件是能够访...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3