3

我正在为 Magento 的管理员中的特定功能创建自定义模块。在 Adminhtml 网格中,我正在拉入订单项,但还需要拉入特定于每个产品的数据,因为它当前位于数据库中。

附件是我当前的 Adminhtml 网格的屏幕截图。 Adminhtml 网格 我需要将产品属性(品牌、风味等)作为附加列添加到网格中。我该怎么做呢?我尝试添加一个

$collection->join()

_prepareCollection()

函数,但无法确定要加入哪些确切的表(平面索引已打开)。

谢谢!标记


谢谢你的提示。不完全是我正在寻找的东西,因为我正在使用选择菜单处理 EAV 对象,但它很接近(upvoting)。

以下是我要添加的集合选择:

$collection->getSelect()->join('catalog_product_index_eav', '`catalog_product_index_eav`.`entity_id` = `main_table`.`product_id` AND `catalog_product_index_eav`.`attribute_id` = (SELECT attribute_id FROM eav_attribute WHERE attribute_code = "brand")', array('attribute_id'));
$collection->getSelect()->join('eav_attribute_option_value', '`eav_attribute_option_value`.`option_id` = `catalog_product_index_eav`.`value`', array('brand' => 'value'));

我真的不需要search这个新品牌列的输入文本框中的功能,但是有人知道如何使它工作吗?收到此错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'brand' in 'where clause'

我可以进去诊断,但我想有人可能会不以为然。

4

1 回答 1

2

您将不得不找出要在联接中使用的表。

$collection->getSelect()->join('sales_flat_order_item', '`sales_flat_order_item`.order_id=`main_table`.entity_id AND `sales_flat_order_item`.parent_item_id IS NULL  ', null);

$collection->getSelect()->join('catalog_product_entity_varchar', '`catalog_product_entity_varchar`.attribute_id=144 AND `catalog_product_entity_varchar`.entity_id = `sales_flat_order_item`.`product_id`', array('models'  => new Zend_Db_Expr('group_concat(`catalog_product_entity_varchar`.value SEPARATOR ",")')))

资料来源: http: //www.atwix.com/magento/customize-orders-grid/

于 2012-06-19T19:57:30.057 回答