我目前正在學習如何使用Magento後端。我創建了一個模型類example/event
和一個相應的資源。我能夠將記錄(通過Magento管理員表單)添加到我創建的example_event
的數據庫表中。不過,我無法從桌子上檢索記錄。我的網格類如下:網格中的Magento getCollection()返回false
class MasteringMagento_Example_Block_Adminhtml_Event_Grid extends Mage_Adminhtml_Block_Widget_Grid {
protected function _prepareCollection() {
$collection = Mage::getModel('example/event')->getCollection();
var_dump($collection); // bool(false)
//$record = Mage::getModel('example/event')->load(1); //id from example_event table
//var_dump($record); // returns object record as expected
$this->setCollection($collection);
return parent::_prepareCollection();
}
protected function _prepareColumns() {
$this->addColumn('name', array(
'type'=>'text',
'index'=>'name',
'header'=>$this->__('Name')
));
$this->addColumn('start', array(
'type'=>'date',
'index'=>'start',
'header'=>$this->__('Start Date')
));
$this->addColumn('end', array(
'type'=> 'date',
'index'=>'end',
'header'=>$this->__('End Date')
));
return $this;
}
}
如代碼中所述,$collection = Mage::getModel('example/event')->getCollection()
返回false。不過,我可以使用$record = Mage::getModel('example/event')->load(1);
從我的數據庫表中檢索單個記錄,其中1是記錄的ID(這只是一個完整性檢查,以確保至少我寫的內容可以與數據庫交談)。目標是將集合呈現到由_prepareColumns()
函數構建的網格中。
同樣,我是Magento後端編程的新手,但我一遍又一遍地通過我的代碼,似乎無法弄清楚爲什麼我的集合對象是空的。
所以,你可以加載(1),但你不能加載所有的集合? – sergio
首先,檢查'var/log'文件夾的錯誤。然後,確保該文件存在:'MasteringMagento/Example/Model/Resource/Event/Collection.php'。如果確實如此,那麼在該問題中發佈該文件的內容以及config.xml和'MasteringMagento/Example/Model/Event.php'的內容。 – Marius
@sergio,這是正確的。 – bar1024