我正在尝试将数据写入数据库中的表。我终于设置了我的模型,但我无法将数据写入其中。
我一直收到这个错误:
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的代码量:
答案 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
应该让你重回正轨。