Wie instanziiere ich ein Modell in magento2?
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');
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.
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.