从自定义查询创建Magento集合对象

时间:2014-07-21 12:35:20

标签: magento

我正在构建一个自定义模块,我想使用下面的三个表创建集合对象;

这是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以创建自定义模块的模型。

1 个答案:

答案 0 :(得分:1)

由于您使用的是Product实体,因此您无需创建自定义查询,而是尝试在Product collection上使用addAttributeToFilter()

有关如何使用它的更多信息,请访问Magento Wiki