Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Fatal error: Call to a member function setColumn() on a non-object in Magento

Fatal error: Call to a member function setColumn() on a non-object in D:\Program Files\wamp\www\magento\app\code\core\Mage\Adminhtml\Block\Widget\Grid\Column.php on line 291

in admin grid section i used this columns details

protected function _prepareColumns()
{
    $this->addColumn('giftcard_id', 
        array(
            'header'    => 'ID',
            'align'        => 'right',
            'width'        => '50px',
            'index'        => 'giftcard_id',
        ));

    $this->addColumn('giftcard_id', 
        array(
            'header'    => 'Detail',
            'align'        => 'center',
            'width'        => '150px',
            'renderer'  => 'giftcard/adminhtml_giftcard_idrenderer',
            'index'        => 'giftcard_id',
        ));



    $this->addColumn('created_time', array(
        'header'    => 'Creation Time',
        'align'     => 'left',
        'width'     => '120px',
        'type'      => 'date',
        'default'   => '--',
        'index'     => 'created_time',
    ));

    $this->addColumn('update_time', array(
        'header'    => 'Update Time',
        'align'     => 'left',
        'width'     => '120px',
        'type'      => 'date',
        'default'   => '--',
        'index'     => 'update_time',
    ));   


    $this->addColumn('status', array(

        'header'    => 'Status',
        'align'     => 'left',
        'width'     => '80px',
        'index'     => 'status',
        'type'      => 'options',
        'options'   => array(
            1 => 'Active',
            0 => 'Inactive',
        ),
    ));
    $this->addColumn('action',
            array(
                'header'    => Mage::helper('giftcard')->__('Action'),
                'width'     => '50px',
                'type'      => 'action',
                'getter'     => 'getId',
                'actions'   => array(
                    array(
                        'caption' => Mage::helper('giftcard')->__('Delete'),
                        'url'     => array('base'=>'*/*/delete'),
                        'field'   => 'id'
                    )
                ),
                'filter'    => false,
                'sortable'  => false,
                'is_system' => true,
    ));

    return parent::_prepareColumns();
}

in giftcard/adminhtml_giftcard_idrenderer i used the following code

class Troy_Giftcard_Block_Adminhtml_Giftcard_Idrenderer extends Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
{
    public function render(Varien_Object $row)
    {
        $value =  $row->getData($this->getColumn()->getIndex());
        $html = 'testing-'.$value .'-testing';
        return $html;        

    }
}

I got this error when i use the

$this->addColumn('giftcard_id', 
            array(
                'header'    => 'Detail',
                'align'        => 'center',
                'width'        => '150px',
                'renderer'  => 'giftcard/adminhtml_giftcard_idrenderer',
                'index'        => 'giftcard_id',
            ));

any one can help me how to fix it

Advance Thanks

like image 381
gowri Avatar asked Mar 25 '23 09:03

gowri


2 Answers

probably the renderer class not found. try with

'renderer' => 'troy_giftcard/adminhtml_giftcard_idrenderer',

like image 147
Pavel Avatar answered Mar 27 '23 17:03

Pavel


It's due to Magento generates exception for renderer class as Invalid block for it.

Ex : 'renderer' => 'Custom_Sales_Block_Adminhtml_Report_Sales_Grid_Column_Renderer_Status' Mean above class is not valid block due to some path mismatch or layout not found issue.

like image 27
Digisha Avatar answered Mar 27 '23 15:03

Digisha