Magento>加入另一个产品的属性

时间:2013-12-31 07:57:26

标签: php mysql magento entity-attribute-value

在管理产品网格中,我想加入另一个产品的字段。假设某些产品具有属性reference_id。我希望添加的列显示产品的产品类型ID,其entity_id是行的reference_id。这就是我到目前为止所得到的:

$collection->addAttributeToSelect($referenceAttributeCode)
    ->getSelect()->join($collection->getTable('catalog/product'), 'e.entity_id=at_'.$referenceAttributeCode. '.value', array('type_id' => 'reference_product_type'));

这里的问题似乎是在操作select对象时,立即发生更改,而使用addAttributeToSelect()所做的更改在集合加载之前生效,结果查询如下所示:

SELECT `e`.*, `at_qty`.`qty`, `at_status`.`value` AS `status`, `at_visibility`.`value` AS `visibility`, `mgt_catalog_product_entity`.`type_id` AS `reference_product_type` FROM `mgt_catalog_product_entity` AS `e`
 LEFT JOIN `mgt_cataloginventory_stock_item` AS `at_qty` ON (at_qty.`product_id`=e.entity_id) AND (at_qty.stock_id=1)
 INNER JOIN `mgt_catalog_product_entity_int` AS `at_status` ON (`at_status`.`entity_id` = `e`.`entity_id`) AND (`at_status`.`attribute_id` = '96') AND (`at_status`.`store_id` = 0)
 INNER JOIN `mgt_catalog_product_entity_int` AS `at_visibility` ON (`at_visibility`.`entity_id` = `e`.`entity_id`) AND (`at_visibility`.`attribute_id` = '102') AND (`at_visibility`.`store_id` = 0)
 INNER JOIN `mgt_catalog_product_entity` ON e.entity_id=at_product_reference.value

当然,这里at_product_reference不存在,因为该属性尚未加入。

我可能做错了。有什么建议吗?非常感激。谢谢!

0 个答案:

没有答案