Magento 1.9 Custom Model Fatal Error – Fix Mage::getModel -> getCollection()

magento-1.9PHP

I am getting fatal error while retrieving data from table by custom module.
I have the following in config.xml file.

<config>
....
<models>
            <ebayaff>
                <class>Ddevs_Ebayaff_Model</class>
            </ebayaff>   
            <ebayaffms>
            <class>Ddevs_Ebayaff_Model_Mysql4</class>
            <entities>
            <ddvescore>
                <table>ddevs_core</table>
              </ddvescore>  
            </entities>
            </ebayaffms>

        </models>
...
</config>

In app\code\local\Ddevs\Ebayaff\Model\Ddvescore.php

<?php
    class Ddevs_Ebayaff_Model_Ddvescore extends Mage_Core_Model_Abstract
    {

        public function _construct(){
             parent::_construct();
            $this->_init("ebayaffms/ddvescore");
        }

    }

In app\code\local\Ddevs\Ebayaff\Model\Mysql4\Ddvescore.php

<?php
    class Ddevs_Ebayaff_Model_Mysql4_Ddvescore extends Mage_Core_Model_Mysql4_Abstract
    {

        public function _construct(){
            $this->_init("ebayaffms/ddvescore", "id");
        }
 }

In app\code\local\Ddevs\Ebayaff\Model\Mysql4\Ddvescore\Collection.php

<?php
    class Ddevs_Ebayaff_Model_Mysql4_Ddvescore_Collection extends Mage_Core_Model_Mysql4_Collection_Abstract
    {

        public function _construct(){
            parent::_construct();
            $this->_init("ebayaffms/ddvescore");
        }
    }

While trying to retrieve the collection from table, by the following code..

$collections = Mage::getModel('ebayaff/ddvescore')->getCollection();

I am getting the following error

Fatal error: Call to undefined method Ddevs_Ebayaff_Model_Mysql4_Ddvescore::getCollection() in /var/www/html/....

Best Answer

On config.xml,you did not define resource models properly.

Wrong: model prefix should be ebayaffs from ebayaff

Use: <resourceModel>ebayaffms_mysql4</resourceModel> for define resource model name and with it you can connect resource model and collection model.

    <ebayaffs> 
            <class>Ddevs_Ebayaff_Model</class>
    <resourceModel>ebayaffms_mysql4</resourceModel> <!-- resource identifier define as ebayaffms_mysql4  -->
        </ebayaffs>   
        <ebayaffms_mysql4> <!-- resounce model inde
        <class>Ddevs_Ebayaff_Model_Mysql4</class>
        <entities>
        <ddvescore>
            <table>ddevs_core</table>
          </ddvescore>  
        </entities>
        <ebayaffms_mysql4> <!-- change here -->