我正在尝试根据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'
关于如何获得符合所有条件(自定义属性和标签)的所有产品的任何想法,谢谢!!
答案 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'"
);