Magentoは、コントローラーのモデルの関数を呼び出します
-
16-10-2019 - |
質問
モデルに関数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');
所属していません magento.stackexchange