Magento自定义管理页面块布局问题

时间:2013-08-02 10:34:18

标签: php magento magento-1.6

您好,我转到管理页面时一直收到以下错误

  

PHP致命错误:在第66行的app / code / core / Mage / Adminhtml / Block / Widget / Grid / Container.php中的非对象上调用成员函数setSaveParametersInSession()

这是我的控制器:

class LTS_Categorymove_Adminhtml_BlacklistController extends Mage_Adminhtml_Controller_Action{

public function indexAction(){
    $this->loadLayout();

    var_dump(Mage::getSingleton('core/layout')->getUpdate()->getHandles());

    $this->renderLayout();
}

}

这是我的主要栏目:

class LTS_Categorymove_Block_Adminhtml_Main extends Mage_Adminhtml_Block_Widget_Grid_Container{

protected $_addButtonLabel = 'Add New Example';

public function __construct(){
    //error_log('fgboo');
    $this->_controller = 'adminhtml_main';
    $this->_blockGroup = 'categorymove';
    $this->_headerText = 'Blacklist';
    $this->_addButtonLabel = 'Button Here';
    parent::__construct();
}


protected function _prepareLayout(){
    $this->setChild( 'grid',
       $this->getLayout()->createBlock( $this->_blockGroup.'/' . $this->_controller . '_grid',
       $this->_controller . '.grid')->setSaveParametersInSession(true) );
   return parent::_prepareLayout();
}

}

现在,当我用google搜索这个问题时,每个人都在说它是一个incorect _controller declration但是从阅读中他们说我应该使用我名字的块名。任何帮助都会很棒,谢谢

1 个答案:

答案 0 :(得分:2)

再次检查文件夹结构,确保所有文件都位于正确的路径上。

在我遇到此问题的情况下,文件放在错误的位置。我将Grid.php放在controller/Adminhtml文件夹而不是Block/Adminhtml/<modulename>/Grid.php