Magento error: call to member function on a non-object
Magento error: call to member function on a non-object
我收到此错误消息:
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>
型号class:
<?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);
}
}
资源class:
<?php
class Becker_Tec_Model_Resource_Manufacturers extends Mage_Core_Model_Resource_Db_Abstract {
protected function _construct()
{
$this->_init('tec/manufacturers', 'tof_manufacturers_id');
}
}
测试页:
<?php
require_once("app/Mage.php");
Mage::app();
$data = Mage::getModel("tec/manufacturers");
$data->load(136);
print_r($data);
<tec_resource>
是罪魁祸首,因为它无法识别如何接通您的电话。
首先使用相同的命名约定,以免把自己逼疯。
配置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:
class Becker_Tec_Model_Tec extends Mage_Core_Model_Abstract
{
protected function _construct()
{
$this->_init( 'becker_tec/tec' );
}
资源class:
class Becker_Tec_Model_Tec_Resource_Tec extends Mage_Core_Model_Resource_Db_Abstract
{
protected function _construct()
{
$this->_init( 'becker_tec/tec', 'entity_id' );
}
Collection class:(如果你想使用内置的collection机制)
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' );
我收到此错误消息:
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>
型号class:
<?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);
}
}
资源class:
<?php
class Becker_Tec_Model_Resource_Manufacturers extends Mage_Core_Model_Resource_Db_Abstract {
protected function _construct()
{
$this->_init('tec/manufacturers', 'tof_manufacturers_id');
}
}
测试页:
<?php
require_once("app/Mage.php");
Mage::app();
$data = Mage::getModel("tec/manufacturers");
$data->load(136);
print_r($data);
<tec_resource>
是罪魁祸首,因为它无法识别如何接通您的电话。
首先使用相同的命名约定,以免把自己逼疯。
配置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:
class Becker_Tec_Model_Tec extends Mage_Core_Model_Abstract
{
protected function _construct()
{
$this->_init( 'becker_tec/tec' );
}
资源class:
class Becker_Tec_Model_Tec_Resource_Tec extends Mage_Core_Model_Resource_Db_Abstract
{
protected function _construct()
{
$this->_init( 'becker_tec/tec', 'entity_id' );
}
Collection class:(如果你想使用内置的collection机制)
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' );