Все, что вам нужно сделать, это спросить фабрику нужной модели в конструкторе. Он будет автоматически сгенерирован при запуске Magento или компилятора.
получил ошибку - Класс Magento \ Framework \ ObjectManager не существует
Анас Мансури
5
Технически , если у вас есть экземпляр класса \Magento\Framework\ObjectManagerможно вызвать createиз , getи это даст вам объект , который вы хотите. Но это действительно зависит от того, где вы хотите использовать это, поскольку Magento 2 смещается в сторону внедрения зависимостей через конструктор .
Ответы:
Magento строго не рекомендует использовать ObjectManager напрямую. Он предоставляет классы обслуживания, которые абстрагируют его для всех сценариев.
Для всех неинъекционных препаратов (моделей) вы должны использовать фабрику:
Все, что вам нужно сделать, это спросить фабрику нужной модели в конструкторе. Он будет автоматически сгенерирован при запуске Magento или компилятора.
источник
Вы можете сделать это так:
но вы должны убедиться, что
_objectManager
член существует.В большинстве классов так и должно быть, но если это не внедряется в конструктор. Как это:
[править год спустя]
Даже если ответ выше работает, это не лучшая практика. Чтобы узнать, как это сделать, смотрите ответ Антона.
источник
Технически , если у вас есть экземпляр класса
\Magento\Framework\ObjectManager
можно вызватьcreate
из ,get
и это даст вам объект , который вы хотите. Но это действительно зависит от того, где вы хотите использовать это, поскольку Magento 2 смещается в сторону внедрения зависимостей через конструктор .источник