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

Était-ce utile?

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');

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top