Mysql 内部联接原则
这是ZF应用程序中的条令代码:Mysql 内部联接原则,mysql,zend-framework,doctrine,inner-join,Mysql,Zend Framework,Doctrine,Inner Join,这是ZF应用程序中的条令代码: $rowset = Doctrine_Query::create() ->select("cu.clientuser, cu.usertitle, u.firstname") ->from('Model_Db_Tblclientuser cu') ->innerJoin('cu.Tblusers u') ->whereIn('cu.clientid', (int)$clientid) ->exec
$rowset = Doctrine_Query::create()
->select("cu.clientuser, cu.usertitle, u.firstname")
->from('Model_Db_Tblclientuser cu')
->innerJoin('cu.Tblusers u')
->whereIn('cu.clientid', (int)$clientid)
->execute();
foreach ($rowset as $row) {
$list[] = array(
'title' => $row->usertitle,
'firstname' => $row->firstname
);
}
生成的查询如下所示:
SELECT
t.clientuser AS t__clientuser,
t.usertitle AS t__usertitle,
t2.userid AS t2__userid,
t2.firstname AS t2__firstname
FROM
tblclientuser t INNER JOIN tblusers t2 ON t.userid = t2.userid
WHERE
(t.clientid IN (1))
复制粘贴到phpmyadmin中,它提供了一个完美的结果。
但是当我运行ZF应用程序时,它出错了
对于field clientuser,一切正常。
但是对于字段firstname,它出错了
Unknown record property / related component "firstname"
on "Model_Db_Tblclientuser"
我做错了什么
注意到一件非常奇怪的事情:如果我这样做了
foreach ($rowset as $row) {
var_dump($row);
}
它还输出其他所有表的内容,这些表根本不重要 我想我不久前遇到了同样的问题,并通过在连接上选择ID解决了它 尝试添加
->select("cu.clientuser, cu.usertitle, u.id, u.firstname")
或者不管连接键是什么,看看这是否解决了问题。您是否尝试过执行大规模选择而不是自定义选择
->select("cu.*, u.*")
或者删除选择按钮。我知道这不是一个解决方案,从symfony的一个doctrine用户的角度来看,代码中的每一件事情似乎都很好。您正在使用1.2.4吗
ps:保存您的浏览器,不要转储doctrine 1.x对象:我意识到这是一个老问题,但如果有人遇到这个问题,我相信这与我经历的类似问题有关 请在此处查看解决方案: