Magento按属性和标签过滤产品

时间:2013-10-07 06:03:43

标签: magento magento-1.7

我正在尝试根据2个自定义属性和标记过滤一系列产品,我可以通过以下方式轻松过滤自定义属性:

$Products   = Mage::getModel('catalog/product')->getCollection();

$Products->addAttributeToSelect('name');
$Products->addAttributeToFilter('custom_attribute1' , 50);
$Products->addAttributeToFilter('custom_attribute2' , 20);

但是,当我尝试使用标记扩展过滤器时:

$Products->joinTable
        (
            array( 'relation'=>'tag/relation' ),
                "relation.product_id = e.entity_id AND relation.tag_id = '82'"
        );

我收到以下消息:

PHP Fatal error:  Uncaught exception 'Mage_Eav_Exception' with message 'Invalid joint fields'

关于如何获得符合所有条件(自定义属性和标签)的所有产品的任何想法,谢谢!!

2 个答案:

答案 0 :(得分:0)

您需要为joinTable方法指定第三个参数。它应包含要从连接表中选择的字段。像这样:

$Products->joinTable
(
    array( 'relation'=>'tag/relation' ),
    "relation.product_id = e.entity_id AND relation.tag_id = '82'",
    array('*') //all fields
);

答案 1 :(得分:0)

试试这个:

$Products->getSelect()->join(
    array('relation' => $Products->getTable('tag/relation')),
    "relation.product_id = e.entity_id AND relation.tag_id = '82'"
);