cakephp - 加入多个表的问题

时间:2014-08-02 21:25:53

标签: cakephp

我正在加入多个表格,如下所示。

        $recommend_logs = $this->RecommendingProductLog->find('all', array(
                'recursive' => 2,
                'fields' => array('Product.ProductName', 'Product.Gender', 'Product.Price', 'RecommendingProductLog.preference', 'Brand.BrandName'),
                'conditions' => array('RecommendingProductLog.user_id' => $user_id),

                'contain' => array('Product', 'Product.Brand')
    ));

我从日志中获取此查询。

SQL Query: SELECT `Product`.`ProductName`, `Product`.`Gender`, `Product`.`Price`, `RecommendingProductLog`.`preference`, `Brand`.`BrandName`, `Product`.`id` FROM `database`.`recommending_Product_log` AS `RecommendingProductLog` LEFT JOIN `database`.`Products` AS `Product` ON (`RecommendingProductLog`.`Product_id` = `Product`.`id`) WHERE `RecommendingProductLog`.`user_id` = 32

即使'Product'表是'Brand'表的子表,我也不会在查询中看到'Brand'表。这就是我在'字段列表'中收到错误'未知列'Brand.BrandName'的原因。

我在Perfume模型中将'Brand'指定为RecommendingPerfumeLog模型中的'belongsTo'和'Perfume',将'Perfume'指定为品牌模型中的hasMany。

有人可以指出问题所在吗?

感谢。

1 个答案:

答案 0 :(得分:0)

您是否正确将外键放在关系的各个表中?在这种情况下,产品必须有一个名为brand_id的密钥,它必须是品牌ID字段的外键。

同时检查this并尝试连接。

我不记得这个包含'来自文档的字段。您使用的是最新版本吗?