Frage

Ich habe eine Funktion ABC im Modell. Ich möchte diese Funktion ABC in Controller aufrufen.

Ich bin neu in Magento und DNT haben eine Idee dazu. Kann mir jeder Körper sagen, wie das geht

War es hilfreich?

Lösung

Es heißt magische Funktion.

$yourModel = Mage::getModel('yourmodulename/yourmodelname')->load($id);

$return = $yourModel->abc();

oder du kannst tun

$yourModel = Mage::getSingleton('yourmodulename/yourmodelname')->load($id);

$return = $yourModel->abc();

Dies ist Ihre Referenz von Getsingleton gegen GetModel

Andere Tipps

Sie können verwenden

Mage::getModel('modulename/modulename')->yourMethod();

Angenommen, Sie möchten dann eine Katalogkategorie

Mage::getModel('catalog/category')->load($id);

Angenommen, Ihre Konfiguration ist - -

    <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>

Jetzt brauchen Sie den zweiten Teil nach dem /. Wenn Ihr Modellname lautet: Packagename_Modulename_Model_Abc, Dann nehmen Sie alles nach Ihrem Präfix, was in der Konfiguration definiert wurde Packagename_Modulename_Model, Kleinbuchstaben den ersten Charakter

Jetzt können Sie auf Ihr Modell zugreifen: folgt:

Mage::getModel('modulename/abc')->yourMethod();

Wenn das Modell in einem Unterordner Ihres Moduls lebt, müssen Sie es laden wie:

Mage::getModel('yourmodelname_as_defined_in_config/path_to_file_filename')

Beispiel

Belastung app/code/local/Aschroder/SMTPPro/Model/Email/Log.php

wie Mage::getModel('smtppro/email_log');

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top