Magento模型以无效方法xxx :: beginTransaction(Array()结束

时间:2012-05-18 11:04:22

标签: magento

我正在尝试将数据写入数据库中的表。我终于设置了我的模型,但我无法将数据写入其中。

我一直收到这个错误:

Invalid method Turnkeye_Adminform_Model_Mysql4_Iaso::beginTransaction(Array
(
)
)

Trace:
#0 E:\projects\magento\app\code\core\Mage\Core\Model\Abstract.php(313): Varien_Object->__call('beginTransactio...', Array)
#1 E:\projects\magento\app\code\core\Mage\Core\Model\Abstract.php(313): Turnkeye_Adminform_Model_Mysql4_Iaso->beginTransaction()
#2 E:\projects\magento\app\code\community\Turnkeye\Adminform\controllers\Adminhtml\AdminformController.php(47): Mage_Core_Model_Abstract->save()
#3 E:\projects\magento\app\code\core\Mage\Core\Controller\Varien\Action.php(420): Turnkeye_Adminform_Adminhtml_AdminformController->saveAction()
#4 E:\projects\magento\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('save')
#5 E:\projects\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#6 E:\projects\magento\app\code\core\Mage\Core\Model\App.php(347): Mage_Core_Controller_Varien_Front->dispatch()
#7 E:\projects\magento\app\Mage.php(640): Mage_Core_Model_App->run(Array)
#8 E:\projects\magento\index.php(80): Mage::run('', 'store')
#9 {main}

由于我已将其发布到pastebin的代码量:

controllers/Adminhtml/AdminformController.php

etc/config.xml

etc/adminhtml.xml

Model/iaso.php

Model/Mysql4/Iaso.php

1 个答案:

答案 0 :(得分:3)

这不起作用,因为您的代码定义了

Turnkeye_Adminform_Model_Mysql4_Iaso extends Mage_Core_Model_Abstract

这是错误的。

您需要从资源模型扩展,该模型来自扩展抽象类Mage_Core_Model_Resource_Abstract的类。这就是定义beginTransaction()的地方。

通常这是通过从Mage_Core_Model_Mysql4_Abstract扩展来完成的,因为在Magento中有一些标准mySQL资源使用的方法,这些方法通过以下方式定义:

Mage_Core_Model_Mysql4_Abstract extends
   Mage_Core_Model_Resource_Db_Abstract extends
       Mage_Core_Model_Resource_Abstract

将您的定义更改为

Turnkeye_Adminform_Model_Mysql4_Iaso extends Mage_Core_Model_Mysql4_Abstract

应该让你重回正轨。