0

こんにちは、私はマジェントを初めて使用し、管理セクションのデータベースにレコードを挿入しようとしています。これはコントローラーファイルの機能です。

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

codePoolの詳細が次のようなapp/etc / modules/modulename.xmlファイルをアップロードしましたか

真のコア

Mage_Connectをnamespace_modulenameに置き換えます

上記の部分のように見えます。

ControllerはVarian_Objectクラスを使用して拡張されないため、Controllerクラスインスタンスで使用されるsetDataはありません。$ model = Mage :: getModel('a / totebags')-> setData($ arrData);

モデルを作成するためにどのクラスが拡張されているか。おそらくいくつかのコントローラーを拡張しています。エラーが何らかのコントローラーを指しているため。

于 2013-03-13T17:28:35.603 に答える