0

大家好,我是 magento 的新手,我正在尝试在管理部分的数据库中插入记录。这是控制器文件的功能。

public function saveAction()
    {
        $data = $this->getRequest()->getParams();
        $arrData = array('number_of_products'=>$data['number_of_products'],'price'=>$data['price']);  
        $model = Mage::getModel('a/totebags')->setData($arrData);  
        try {  
            $insertId = $model->save()->getId();  
            echo "Data successfully inserted. Insert ID: ".$insertId;  
        } catch (Exception $e){  
            echo $e->getMessage();  
        }  
    }

我的问题是,当运行此代码时,我收到此错误:

Fatal error: Call to a member function setData() on a non-object in /Library/WebServer/Documents/magento/app/code/community/ToteBags/Adminform/controllers/Adminhtml/AdminformController.php on line 40 

这是我的config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <ToteBags_Adminform>
            <version>1.0.0</version>
        </ToteBags_Adminform>
    </modules>

    <global>
        <blocks>
            <totebags_adminform>
                <class>ToteBags_Adminform_Block</class>
            </totebags_adminform>
        </blocks>

        <helpers>
            <totebags_adminform>
                <class>ToteBags_Adminform_Helper</class>
            </totebags_adminform>
        </helpers>

        <models>
            <totebags_adminform>
                <class>ToteBags_Adminform_Model</class>
                <resourceModel>totebags_adminform_mysql4</resourceModel>
            </totebags_adminform>
            <totebags_adminform_mysql4>
                <class>ToteBags_Adminform_Model_Mysql4</class>
                <entities>
                    <category>
                        <table>totebags_fbstore_category</table>
                    </category>
                    <category_product>
                        <table>totebags_fbstore_category_product</table>
                    </category_product>
                </entities>
            </totebags_adminform_mysql4>
        </models>

        <resources>
            <totebags_adminform_setup>
                <setup>
                    <module>ToteBags_Adminform</module>
                </setup>
                <connection>
                    <use>core_setup</use>
                </connection>
            </totebags_adminform_setup>
            <totebags_adminform_write>
                <connection>
                    <use>core_write</use>
                </connection>
            </totebags_adminform_write>
            <totebags_adminform_read>
                <connection>
                    <use>core_read</use>
                </connection>
            </totebags_adminform_read>
        </resources>
    </global>

    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <totebags_adminform after="Mage_Adminhtml">ToteBags_Adminform_Adminhtml</totebags_adminform>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>

    <adminhtml>
        <layout>
            <updates>
                <totebags_adminform>
                    <file>totebags_adminform.xml</file>
                </totebags_adminform>
            </updates>
        </layout>
        <translate>
            <modules>
                <ToteBags_Adminform>
                    <files>
                        <default>ToteBags_Adminform.csv</default>
                    </files>
                </ToteBags_Adminform>
            </modules>
        </translate>
    </adminhtml>

    <default>
        <totebags_adminform>
            <general>
                <default_sort_by><![CDATA[position]]></default_sort_by>
            </general>
        </totebags_adminform>
    </default>
</config>

请帮我。

4

1 回答 1

0

您是否上传了 app/etc/modules/modulename.xml 文件,其中包含类似这样的 codePool 详细信息

真正的核心

将 Mage_Connect 替换为 namespace_modulename

看起来你已经完成了上面的部分。

Controller 没有使用类 Varien_Object 扩展,因此没有 setData 与 Controller 类实例一起使用。$model = Mage::getModel('a/totebags')->setData($arrData);

扩展了什么类来创建你的模型。你可能已经扩展了一些控制器。由于错误指向某些控制器。

于 2013-03-13T17:28:35.603 回答