2015-03-11 3 views
1

У меня есть сообщение об ошибке:Magento ошибка: вызов функции члена на необъектных

Fatal error: Call to a member function load() on a non-object in /home/autoco/public_html/shop/app/code/core/Mage/Core/Model/Abstract.php on line 225

Как это исправить?

<config> 
<modules> 
    <Becker_Tec> 
     <version>1.0.0</version> 
    </Becker_Tec> 
</modules> 
<global> 
    <models> 
     <tec> 
      <class>Becker_Tec_Model</class> 
      <resourceModel>tec_resource</resourceModel> 
      <tec_resource> 
       <class>Becker_Tec_Model_Resource</class> 
       <entities> 
        <manufacturers> 
         <table>tof_manufacturers</table> 
        </manufacturers> 
       </entities> 
      </tec_resource> 
     </tec> 
    </models> 
</global> 
<frontend> 
    <routers> 
     <becker_tec> 
      <use>standard</use> 
      <args> 
       <module>Becker_Tec</module> 
       <frontName>tecdoc</frontName> 
      </args> 
     </becker_tec> 
    </routers> 
</frontend> 
</config> 

класс Модель: класс

<?php 
class Becker_Tec_Model_Manufacturers extends Mage_Core_Model_Abstract 
{ 

    protected function _construct() 
    { 
    $this->_init('tec/manufacturers'); 
    } 
    public function test(){ 
    $this->getCollection()->load(15); 
    } 

} 

Ресурс:

<?php 

class Becker_Tec_Model_Resource_Manufacturers extends Mage_Core_Model_Resource_Db_Abstract { 

    protected function _construct() 
    { 
    $this->_init('tec/manufacturers', 'tof_manufacturers_id'); 
    } 

} 

Test Page:

<?php 

require_once("app/Mage.php"); 

Mage::app(); 

$data = Mage::getModel("tec/manufacturers"); 
$data->load(136); 
print_r($data); 
+0

вы должны задать вопрос первым, а затем положить весь код. Мне не нравится, когда нужно просматривать весь путь, прежде чем узнать, хочу ли я ответить или нет :) –

+1

Эта ошибка, поскольку Magento не создает объект модели (Mage :: getModel («tec/manufacturer»)). Причины могут быть разными, проверьте, установлен ли файл модели isset в файле/etc/{codepoll} /Becker/Tec/Model/Manufacturers.php – sergio

+0

, так как я могу его исправить? – user2838459

ответ

0
<tec_resource> 

Был виновником, так как он не узнал, как подключить ваш вызов.

Прежде всего используйте одно и то же соглашение об именах, чтобы не сводиться с ума.

Config XML модель Раздел:

<models> 
    <becker_tec> 
     <class>Becker_Tec_Model</class> 
     <resourceModel>becker_tec_resource</resourceModel> 
    </becker_tec> 
    <becker_tec_resource> 
     <class>Becker_Tec_Model_Resource</class> 
     <entities> 
      <becker_tec> 
       <table>becker_tec</table> 
      </becker_tec> 
     </entities> 
    </becker_tec_resource> 
</models> 

Модель Класс:

class Becker_Tec_Model_Tec extends Mage_Core_Model_Abstract 
{ 
    protected function _construct() 
    { 
     $this->_init('becker_tec/tec'); 
    } 

Класс ресурсов:

class Becker_Tec_Model_Tec_Resource_Tec extends Mage_Core_Model_Resource_Db_Abstract 
{ 
    protected function _construct() 
    { 
     $this->_init('becker_tec/tec', 'entity_id'); 
    } 

класс Коллекция: (Если вы хотите использовать встроенные механизмы сбора)

class Becker_Tec_Model_Tec_Resource_Tec_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract 
{ 
    public function _construct() 
    { 
     parent::_construct(); 
     $this->_init('becker_tec/tec'); 
    } 

Поместите их в соответствующие папки, и вы будете в состоянии назвать:

$oTec = Mage::getModel('becker_tec/tec'); 
Смежные вопросы