Frage

Gibt es eine Möglichkeit, etwas Einfaches wie in Magento2 zu tun?

rufen Sie eine Funktion wie diese in Magento 2 auf,

$model = Mage::getModel('cms/page');
War es hilfreich?

Lösung

Magento entmutigt strikt die Verwendung von objectManager direkt.Es bietet Serviceklassen, die es für alle Szenarien abgründen.

Für alle Nichteinspritzbare (Modelle) müssen Sie Fabrik verwenden: generasacodicetagpre.

Alles, was Sie tun müssen, ist die Fabrik des gewünschten Modells im Konstruktor zu stellen.Es wird automatisch generiert, wenn Sie Magento oder Compiler ausführen.

Andere Tipps

Sie können es so tun: generasacodicetagpre.

Sie müssen jedoch sicherstellen, dass das _objectManager-Mitglied existiert.

In den meisten Klassen sollte es jedoch, aber wenn es nicht im Konstruktor einspritzt.Wie folgt: generasacodicetagpre.

[ein Jahr später bearbeiten]

Auch wenn die obige Antwort funktioniert, ist es nicht die beste Praxis.Für den richtigen Weg, es zu tun, sehe Anton's Antwort.

Technisch gesehen, wenn Sie eine Instanz des haben \Magento\Framework\ObjectManager sie können anrufen create von get und das wird dir das Objekt geben, das du begehrst.Aber es hängt wirklich davon ab, wo Sie dies verwenden möchten, da sich Magento 2 in Richtung verschiebt Abhängigkeitsinjektion über Konstruktor.

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