Php 如何加入[使用Doctrine2和CodeIgniter2]

Php 如何加入[使用Doctrine2和CodeIgniter2],php,class,join,doctrine,Php,Class,Join,Doctrine,新的教义,并试图加入工作 我已经在这上面撞了一段时间了,我慢慢地开始了解整个情况——这并不像我想象的那么简单 我有两个具有相应sql表的实体。我正在尝试运行一个查询,该查询将返回两个链接的数据。加入 如果我在纯SQL中执行此操作,它将如下所示: SELECT * FROM mail_links a INNER JOIN mail_msgs b ON a.msg_id = b.id 我尝试了一些方法来实现这一点,包括: $query = $this -> doctr

新的教义,并试图加入工作

我已经在这上面撞了一段时间了,我慢慢地开始了解整个情况——这并不像我想象的那么简单

我有两个具有相应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)可以帮助我理解如何编写此联接所需的类

编辑:

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

那么,我如何使这项工作:

$query = $this -> doctrine -> em -> createQuery ("SELECT a FROM ORM\Dynasties2\Maillinks a JOIN ORM\Dynasties2\Mailmsgs b ON a.msgId = b.id");
它给出了以下错误:

致命错误:未捕获异常“条令\ORM\Query\QueryException”,消息“[语义错误]第0行,a.msgId上“b”附近的第70列:错误:标识变量ORM\Dynasties2\Mailmsgs用于联接路径表达式,但以前未定义。'in/path/applicationFolder/libraries/Doctrine/ORM/Query/Query/QueryException.php:47堆栈跟踪:#0/path/applicationFolder/libraries/Doctrine/ORM/Query/Parser.php(413):doctor\ORM\Query\QueryException::semanticaleror('0行,70列…'))#1/PATH/applicationFolder/libraries/doctor/ORM/Query/Parser.php(914):doctor\ORM\Query\Parser->semanticaleror('Identification…')#2/PATH/applicationFolder/libraries/doctor/ORM/Query/Parser.php(1567):doctor\ORM\Query\Parser->\Parser->\JoinAssociationPathExpression()第47行的#3/PATH/in/PATH/applicationFolder/libraries/Doctrine/ORM/Query/QueryException.php


我对教义不太感兴趣,但不久前我发现了这篇文章。请务必阅读有关@JoinColumn的内容