我正在加入多个表格,如下所示。
$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。
有人可以指出问题所在吗?
感谢。
答案 0 :(得分:0)
您是否正确将外键放在关系的各个表中?在这种情况下,产品必须有一个名为brand_id的密钥,它必须是品牌ID字段的外键。
同时检查this并尝试连接。
我不记得这个包含'来自文档的字段。您使用的是最新版本吗?