I created a custom table and would like to show the data from this table in a grid in admin section. I have created configuration for viewing the admin page. But there is an error while getting data from the table.
The error is :
Fatal error: Call to a member function getCollection() on a non-object in
My table name is "product_edit_details".
the config file is
<?xml version="1.0"?>
<config>
<modules>
<Buildnext_Producteditrequest>
<version>0.1.0</version>
</Buildnext_Producteditrequest>
</modules>
<frontend>
<routers>
<producteditrequest>
<use>standard</use>
<args>
<module>BuildnextProducteditrequest</module>
<frontName>producteditrequest</frontName>
</args>
</producteditrequest>
</routers>
<layout>
<updates>
<producteditrequest>
<file>producteditrequest.xml</file>
</producteditrequest>
</updates>
</layout>
</frontend>
<admin>
<routers>
<producteditrequest>
<use>admin</use>
<args>
<module>Buildnext_Producteditrequest</module>
<frontName>producteditrequest</frontName>
</args>
</producteditrequest>
</routers>
</admin>
<adminhtml>
<menu>
<producteditrequest module="producteditrequest">
<title>Producteditrequest</title>
<sort_order>71</sort_order>
<children>
<items module="producteditrequest">
<title>Manage Items</title>
<sort_order>0</sort_order>
<action>producteditrequest/adminhtml_producteditrequest</action>
</items>
</children>
</producteditrequest>
</menu>
<acl>
<resources>
<all>
<title>Allow Everything</title>
</all>
<admin>
<children>
<producteditrequest>
<title>Producteditrequest Module</title>
<sort_order>200</sort_order>
</producteditrequest>
</children>
</admin>
</resources>
</acl>
<layout>
<updates>
<producteditrequest>
<file>producteditrequest.xml</file>
</producteditrequest>
</updates>
</layout>
</adminhtml>
<global>
<models>
<producteditrequest>
<class>Buildnext_producteditrequest_Model</class>
<resourceModel>producteditrequest_mysql4</resourceModel>
</producteditrequest>
<producteditrequest_mysql4>
<class>Buildnext_Producteditrequest_Model_Mysql4</class>
<entities>
<producteditrequest>
<table>product_edit_details</table>
</producteditrequest>
</entities>
</producteditrequest_mysql4>
</models>
<resources>
<producteditrequest_setup>
<setup>
<module>Buildnext_Producteditrequest</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</producteditrequest_setup>
<producteditrequest_write>
<connection>
<use>core_write</use>
</connection>
</producteditrequest_write>
<producteditrequest_read>
<connection>
<use>core_read</use>
</connection>
</producteditrequest_read>
</resources>
<blocks>
<producteditrequest>
<class>Buildnext_Producteditrequest_Block</class>
</producteditrequest>
</blocks>
<helpers>
<producteditrequest>
<class>Buildnext_Producteditrequest_Helper</class>
</producteditrequest>
</helpers>
</global>
</config>
/Producteditrequest/Model/Producteditrequest.php
class Buildnext_Producteditrequest_Model_Producteditrequest extends Mage_Core_Model_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('producteditrequest/producteditdetails');
}
}
I have doubt regarding this line $this->_init('producteditrequest/producteditdetails'); — My table name is product_edit_details tried giving $this->_init('producteditrequest/product_edit_details'); but was not working so i removed the underscores after reading this answer.
/Producteditrequest/Model/Mysql4/Producteditrequest.php
class Buildnext_Producteditrequest_Model__Mysql4_Producteditrequest
extends Mage_Core_Model_Mysql4_Abstract
{
public function _construct()
{
parent::_construct();
$this->_init('producteditrequest/producteditdetails','pdt_edit_id');
}
}
/Producteditrequest/Model/Mysql4/Producteditrequest/Collection.php
class Buildnext_Producteditrequest_Model_Mysql4_Producteditrequest_Collection
extends Mage_Core_Model_Mysql4_Collection_Abstract
{
public function _construct()
{
parent::__construct();
$this->_init('producteditrequest/producteditdetails');
}
}
Best Answer
Follow bellow steps :
Step : 1
config.xml
Step : 2 /Buildnext/Producteditrequest/Model/Producteditrequest.php
Step : 3 Buildnext/Producteditrequest/Model/Mysql4/Producteditrequest.php
Step : 4 Buildnext/Producteditrequest/Model/Mysql4/Producteditrequest/Collection.php
Step : 5 Buildnext/Producteditrequest/Model/Mysql4/sql/producteditrequest_setup/mysql4-install-0.1.0.php
Step : 6 app\etc\modules\Buildnext_Producteditrequest.xml
Step : 7 Refresh all magento Cache to admin side System -> Cache Management