2016-12-02 56 views
3

我已经在magento 1.9中创建了一个自定义模块。并且我正在尝试将我的模型中的方法加载到controller。但它显示以下错误。致命错误:调用成员函数testing()在非对象上。 我在config.xml文件中加载模型如下。在magento自定义模型中显示错误的模型方法

<models> 
    <sim_categorynewsletter> 
     <class>Sim_Categorynewsletter_Model</class> 
     <resourceModel>newsletter_mysql4</resourceModel> 
    </sim_categorynewsletter> 
    <newsletter_mysql4> 
     <class>Sim_Categorynewsletter_Model_Mysql4</class> 
     <entities> 
      <newsletter> 
       <table>sim_categorynewsletter</table> 
      </newsletter> 
     </entities> 
    </newsletter_mysql4> 
    </models> 

,这是我的模型类,newsletter.php

<?php 
class Sim_Categorynewsletter_Model_Newsletter extends Mage_Core_Model_Abstract 
{ 
    protected function _construct(){ 

     $this->_init("categorynewsletter/newsletter"); 
    } 
    public function testing(){ 
     echo "inside testing method"; 
    } 
} 

这是我comtroller,IndexController.php.Here我试图加载models.But其示值误差的方法。

<?php 
class Sim_Categorynewsletter_IndexController extends Mage_Core_Controller_Front_Action 
{ 
    public function createAction(){ 
      echo Mage::getModel('categorynewsletter/newsletter')->testing(); 
    } 
} 
+0

请使用'$本 - > _的init( “sim_categorynewsletter /通讯”);' –

+0

没有......同样的错误 –

+0

试试您的实例来自单独的文件的模型,并通过get_class回显它的类 – Shrikant

回答

0

我试图创建相同的场景并发现错误。

<sim_categorynewsletter> 
    <class>Sim_Categorynewsletter_Model</class> 
    <resourceModel>newsletter_mysql4</resourceModel> 
</sim_categorynewsletter> 

到: 从替换下面的代码

<categorynewsletter> 
    <class>Sim_Categorynewsletter_Model</class> 
    <resourceModel>newsletter_mysql4</resourceModel> 
</categorynewsletter>