4

データベース内のテーブルにデータを書き込もうとしています。ようやくモデルを設定しましたが、データが書き込めません。

私はこのエラーを受け取り続けます:

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

4

1 に答える 1

3

コードが定義しているため、これは機能しません

Turnkeye_Adminform_Model_Mysql4_Iaso extends Mage_Core_Model_Abstract

これは間違っています。

リソースモデル、つまり抽象クラスを拡張しているクラスから拡張する必要がありMage_Core_Model_Resource_Abstractます。それbeginTransaction()が定義されているところです。

通常、これはから拡張することによって行われます。これはMage_Core_Model_Mysql4_Abstract、標準のmySQLリソースがMagentoで使用するメソッドが他にもいくつかあり、これらは次の方法で定義されるためです。

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

正しい軌道に戻るはずです。

于 2012-05-18T15:15:28.827 に答える