这是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)
   ->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应用程序时,它出错了...

对于“ clientuser”字段,一切正常。
但是对于“名字”字段来说,这是错误的...

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")


或无论连接键是什么,看看是否可以解决。

关于mysql - 内在 Doctrine ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9998867/

10-11 03:16