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

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top