質問

モデルに関数ABCがあります。コントローラーのその関数ABCと呼びたいです。

私はMagentoに慣れていないので、これについてはDNTが考えています。どんな体でもこれを行う方法を教えてもらえますか

役に立ちましたか?

解決

それは魔法機能と呼ばれます。

$yourModel = Mage::getModel('yourmodulename/yourmodelname')->load($id);

$return = $yourModel->abc();

またはあなたができる

$yourModel = Mage::getSingleton('yourmodulename/yourmodelname')->load($id);

$return = $yourModel->abc();

これはあなたの参照のためです GetSingleton vs GetModel

他のヒント

使用できます

Mage::getModel('modulename/modulename')->yourMethod();

カタログカテゴリが必要だとします

Mage::getModel('catalog/category')->load($id);

構成が -

    <models>
        <modulename> <!--  this here is the first part of your getModel() call -->
            <class>Packagename_Modulename_Model</class>
            <resourceModel>modulename_mysql4</resourceModel>
        </modulename>
        <modulename_mysql4>
            <class>Packagename_Modulename_Model_Mysql4</class>
            <entities>
                <abc>
                    <table>table_abc</table>
                </abc>
            </entities>
        </modulename_mysql4>
    </models>

今、あなたは後の2番目の部分が必要です /. 。モデル名の場合: Packagename_Modulename_Model_Abc, 、次に、構成で定義されたプレフィックスの後にすべてを取ります Packagename_Modulename_Model, 最初の小文字 キャラクター

これで、次の方法でモデルにアクセスできます。

Mage::getModel('modulename/abc')->yourMethod();

モデルがモジュールのサブフォルダーに存在する場合、次のようにロードする必要があります。

Mage::getModel('yourmodelname_as_defined_in_config/path_to_file_filename')

ロード app/code/local/Aschroder/SMTPPro/Model/Email/Log.php

お気に入り Mage::getModel('smtppro/email_log');

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top