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();
这是您的参考 getingleton 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>
现在您需要第二部分 /
. 。如果您的模型名称是: 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');