在管理员 magento 中显示属性值

show attribute value in admin magento

我是 magento 的新手。

我在 sales_flat_order table 中添加了一个额外的字段,即 order_campaign_params 当客户完成订单时,数据将插入此 table。 现在我想在管理员中显示此属性值。 我在管理员中添加了一个额外的列,即 Order Utm Source 但数据未显示。 请告诉我如何在管理员中显示属性值。 请查看添加列的代码

 $this->addColumn('order_campaign_params', array(
           'header' => Mage::helper('orderreport')->__('Order Utm Source'),
           'index' => 'order_campaign_params',
           'filter_index'=>'customer_entity.order_campaign_params',
           'width' => '70px',
       ));

但是如何显示该字段的数据,请说明。

请看结构:

customer_entity_varchar table

value_id entity_type_id  attribute_id  entity_id    value 
 136977             1          5        43120     Sanghamitra
 136978             1          7        43120     samal
 136979             1          12       43120     0860142023b7a810ce66a21b68
 136980             1          174      43120     data(order_compaign_params)
 136981             1          3        43120     Kalazone.in

谢谢

销售订单网格是根据 sales_flat_order_grid table 构建的。 order_campaign_params 列存在于 sales_flat_order table 而不是 sales_flat_order_grid table.

因此您需要 MySQL 加入 sales_flat_order_grid table sales_flat_order table,如下所示:

$select = $collection->getSelect();
$select->joinLeft(array('order' => Mage::getModel('core/resource')->getTableName('sales/order')), 'order.entity_id=main_table.entity_id',
array('order_campaign_params' => 'order_campaign_params'));
$select->joinLeft(array('custeav' => 'customer_entity_varchar'), 'custeav.attribute_id=main_table.order_campaign_params', array('*'));

order_campaign_params 列现在将显示在网格中。

希望对您有所帮助。