我正在构建一个自定义模块,我想使用下面的三个表创建集合对象;
这是sql查询,但是当我尝试在magento中作为集合对象实现时,它被卡住了。
SELECT
`e` . * , `at_color`.`value` AS `color`
FROM
`catalog_product_entity` AS `e`
INNER JOIN
`catalog_product_entity_int` AS `at_color`
ON
( `at_color`.`entity_id` = `e`.`entity_id` )
AND (`at_color`.`attribute_id` = '92')
AND (`at_color`.`store_id` =0)
INNER JOIN
catalog_product_entity_text
ON
catalog_product_entity_text.entity_id = e.entity_id
AND catalog_product_entity_text.value LIKE '%jean%'
WHERE
(at_color.value =6)
请建议我如何加入这3个表来产生上述结果作为集合对象。
我使用下面的代码,但收到错误 “致命错误:调用未定义的方法Mage_Catalog_Model_Resource_Product_Collection :: join()” 如果代码有任何问题,请告诉我。 Phpmyadmin为上面的sql查询生成结果。 $ collection = $ this-> getCollection() - > join(array('at_color'=>'catalog_product_entity_int'),'at_color.entity_id = e.entity_id AND at_color.attribute_id = 92') - > join(array('c'=>'catalog_product_entity_text'),'c.entity_id = e.entity_id AND c.value LIKE“%jean%”') - > columns(array('value'), 'at_color') - > where('at_color.value =?',6);
echo $ collection-> getSelect();
我正在扩展模型Mage_Catalog_Model_Product以创建自定义模块的模型。
答案 0 :(得分:1)
由于您使用的是Product实体,因此您无需创建自定义查询,而是尝试在Product collection上使用addAttributeToFilter()
。
有关如何使用它的更多信息,请访问Magento Wiki