Magento appeler une fonction de modèle dans le contrôleur
-
16-10-2019 - |
Question
J'ai une fonction abc dans le modèle. Je veux appeler cette fonction abc dans le contrôleur.
Je suis nouveau à magento et DNT ont une idée à ce sujet. Tout organisme peut me dire comment faire
La solution
Il appelle la fonction magique.
$yourModel = Mage::getModel('yourmodulename/yourmodelname')->load($id);
$return = $yourModel->abc();
ou vous pouvez faire
$yourModel = Mage::getSingleton('yourmodulename/yourmodelname')->load($id);
$return = $yourModel->abc();
est pour votre référence getSingleton VS getModel
Autres conseils
Vous pouvez utiliser
Mage::getModel('modulename/modulename')->yourMethod();
Supposons que vous voulez catégorie de catalogue puis
Mage::getModel('catalog/category')->load($id);
Supposons que votre configuration est -
<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>
Maintenant, vous devez la deuxième partie après la /
. Si le nom de votre modèle est: Packagename_Modulename_Model_Abc
, vous prenez tout ce qui suit le préfixe, qui a été défini dans le Packagename_Modulename_Model
de configuration, en minuscule le premier caractère
Maintenant, vous pouvez accéder à votre modèle suivant ainsi:
Mage::getModel('modulename/abc')->yourMethod();
Si la vie du modèle dans un sous-dossier de votre module, vous devez le charger comme:
Mage::getModel('yourmodelname_as_defined_in_config/path_to_file_filename')
Exemple
Charger app/code/local/Aschroder/SMTPPro/Model/Email/Log.php
comme Mage::getModel('smtppro/email_log');