1

Doctrine 的新手,并试图让 JOIN 工作。

我已经对此有一段时间了,并且正在慢慢开始了解整个情况 - 它并不像我想象的那么简单。

我有两个具有相应 sql 表的实体。我正在尝试运行一个查询,该查询将返回来自它们两者的数据,链接。加入。

如果我在直接 SQL 中执行此操作,它将如下所示:

SELECT *
    FROM mail_links a
    INNER JOIN mail_msgs b
    ON a.msg_id = b.id

我尝试了一些方法来完成这项工作,包括:

$query = $this -> doctrine -> em -> createQuery ("SELECT a FROM ORM\Dynasties2\Maillinks a JOIN ORM\Dynasties2\Mailmsgs b ON a.msgId = b.id");

那当然行不通。我意识到这依赖于将实体创建为类,或者至少这就是一些示例似乎正在做的事情。

这就是我完全迷失的地方。

我需要这些实体是类是否正确?是否有任何完整的代码示例(使用 CI)可以帮助我理解如何编写此 JOIN 所需的类?

编辑:

我突然意识到我确实课程设置。这就是我的实体。

那么我该如何进行这项工作:

$query = $this -> doctrine -> em -> createQuery ("SELECT a FROM ORM\Dynasties2\Maillinks a JOIN ORM\Dynasties2\Mailmsgs b ON a.msgId = b.id");

它给出了以下错误:

致命错误:未捕获的异常 'Doctrine\ORM\Query\QueryException' 带有消息 '[Semantical Error] line 0, col 70 near 'b ON a.msgId': Error: Identification Variable ORM\Dynasties2\Mailmsgs used in join path expression but之前没有定义。在 /PATH/applicationFolder/libraries/Doctrine/ORM/Query/QueryException.php:47 堆栈跟踪:#0 /PATH/applicationFolder/libraries/Doctrine/ORM/Query/Parser.php(413): Doctrine\ORM\Query\ QueryException::semanticalError('line 0, col 70 ...') #1 /PATH/applicationFolder/libraries/Doctrine/ORM/Query/Parser.php(914): Doctrine\ORM\Query\Parser->semanticalError('识别...') #2 /PATH/applicationFolder/libraries/Doctrine/ORM/Query/Parser.php(1567): Doctrine\ORM\Query\Parser->

4

0 回答 0