如何在magento网格视图中获取自定义模块中的产品名称?

时间:2013-10-08 06:18:06

标签: php magento

我有product id。自定义模块中的数据库字段名称productid

我想在自定义模块列表视图中显示产品名称。

这是我的代码:

protected function _prepareColumns() {         
    $this->addColumn('productid', array(
        'header'    => Mage::helper('productpdf')->__('productid'),
        'align'     => 'center',
        'index'     => 'productid',
    ));
}

2 个答案:

答案 0 :(得分:3)

为此,您必须单独创建集合(或在您现有的集合中包括以下查询),以便从产品ID中获取产品名称。

你可以这样做

protected function _prepareCollection()
{
        $collection = Mage::getModel('catalog/product')->getCollection()
        ->addAttributeToSelect('name');
        $collection->addAttributeToFilter('productid');
}

protected function _prepareColumns()
{


       $this->addColumn('productid', array(
       'header' => Mage::helper('productpdf')->__('productid'),
      'align'     =>'center',
     'index'     =>'productid',


      ));


         $this->addColumn('name', array(
        'header'    => Mage::helper('productpdf')->__('Name'),
        'width'     => '150',
        'index'     => 'name'
    ));


}

addAttributeToFilter('productid')中,您必须传递产品ID。 希望这项工作: - )

答案 1 :(得分:1)

不要使用太多代码,而是在model / productpdf.php文件中添加以下代码。

  /**
 * @param int $productId.
 * @return product name.
 */
public function getProductNameById($productId)
{
    $query_select = "SELECT value FROM `".Mage::getConfig()->getTablePrefix()."catalog_product_entity_varchar` WHERE
            entity_id = '".$productId."' AND `attribute_id` = 71";

    return $data = Mage::getSingleton('core/resource')->getConnection('core_read')->fetchAll($query_select); 

}

现在只需在您的文件中调用此函数。

  $productNameArray = Mage::getModel('productpdf/productpdf')->getProductNameById($productId);

为显示产品名称添加新列

  $this->addColumn('name', array(
    'header'    => Mage::helper('productpdf')->__('Name'),
    'width'     => '150',
    'index'     =>  $productNameArray[0]['value']
));

干杯!!