我有一個自定義表starmall_config_shop
,列id
和name
。Magento 1.7 collection and joinField
我將自定義屬性shop_id
添加到產品表中。
我想要得到的name
從starmall_config_shop
當我做
$rs = Mage::getModel('catalog/product')
->getCollection()
->addAttributeToSelect('shop_id');
$rs->joinField('shop_name','starmall_config/shop','name','id=shop_id'
,NULL,'left');
我得到的錯誤
Unknown column 'at_shop_id.value' in 'on clause'
$rs->printlogquery(true)
給出:
SELECT `e`.*, `at_shop_name`.`name` AS `shop_name` FROM `catalog_product_entity` AS `e`
LEFT JOIN `starmall_config_shop` AS `at_shop_name` ON (at_shop_name.`id`=at_shop_id.value)
我看到我可能缺少對屬性表的連接。
at_shop_id.value
從哪裏來? 如何獲取查詢中的name
列?
===================
當前工作解決方案是使用:
->addAttributeToSelect('shop_id', 'left')
--->工作
->addAttributeToSelect('shop_id')
- - >不工作
一眼看上去,你的代碼對我來說似乎可以,你正在清理試圖加入shop_id屬性,但它不在你的sql中。如果有的話,我猜你已經啓用了平面目錄並需要重新索引,或者緩存清除。 –
剛剛檢查,但在配置平面目錄中未啓用。對於開發,我禁用了緩存。確定刪除了緩存文件夾,但查詢仍然失敗。是的,它不是在SQL中,我猜我需要找出如何將自定義產品屬性「shop_id」加入到查詢中。 – Guus
可能是一個愚蠢的問題,但你確定你刪除了正確的緩存目錄。我在使用Magento時遇到的第一個問題是我忘記將var目錄設置爲可寫,並在/ tmp /中創建緩存。 –