【发布时间】:2011-04-27 17:27:47
【问题描述】:
我有一个 hasMany Librarian 的 Message 模型。
我遇到的问题是,当我尝试将表连接到 Librarian 表时,该表尚未连接 - 即我创建的连接出现之前关系连接是已创建。
$this->Message->find('all', array(
'joins' => array(
array(
'table' => 'users',
'alias' => 'User',
'conditions' => array('User.id = Librarian.id')
)
)
));
这会按照以下方式生成查询:
SELECT `Message`.`id`, `Message`.`librarian_id`,
`Message`.`Librarian`.`id`, `Librarian`.`user_id`
FROM `contact_messages` AS `Message`
INNER JOIN users AS `User` ON (`User`.`id` = `Librarian`.`user_id`)
LEFT JOIN `librarians` AS `Librarian`
ON (`Message`.`librarian_id` = `Librarian`.`id`)
WHERE `Message`.`id` = 3
我得到了错误
“on 子句”中的未知列“Librarian.user_id”
我如何才能加入到 hasMany 表之后它已经包含在构建查询中?
干杯
【问题讨论】:
-
我在这里可能是错的 - 我通常使用两个左连接来模拟 habtm(你似乎在这里做的 - 消息 habtm 用户)
标签: php activerecord cakephp