Magento chiamare una funzione del modello della controller
-
16-10-2019 - |
Domanda
Ho una funzione abc nel modello. Voglio chiamare quella funzione abc controller.
Sono nuovo di Magento e dnt hanno alcuna idea riguardo a questa. Qualsiasi organismo può dirmi come fare questo
Soluzione
Si chiama Magic funzione.
$yourModel = Mage::getModel('yourmodulename/yourmodelname')->load($id);
$return = $yourModel->abc();
o si può fare
$yourModel = Mage::getSingleton('yourmodulename/yourmodelname')->load($id);
$return = $yourModel->abc();
Questo è per il vostro riferimento di getSingleton VS getModel
Altri suggerimenti
È possibile utilizzare
Mage::getModel('modulename/modulename')->yourMethod();
Si supponga di voler Catalogo poi
Mage::getModel('catalog/category')->load($id);
Supponiamo che la vostra configurazione è -
<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>
Ora è necessario la seconda parte dopo il /
. Se il nome del modello è: Packagename_Modulename_Model_Abc
, poi si prende tutto dopo il prefisso, che è stato definito nel Packagename_Modulename_Model
config, minuscolo il primo di carattere
Ora è possibile accedere al vostro modello seguente modo:
Mage::getModel('modulename/abc')->yourMethod();
Se il modello vive in una sottocartella del modulo, è necessario caricarlo come:
Mage::getModel('yourmodelname_as_defined_in_config/path_to_file_filename')
Esempio
Carica app/code/local/Aschroder/SMTPPro/Model/Email/Log.php
come Mage::getModel('smtppro/email_log');