Todo lo que tiene que hacer es preguntarle a la fábrica del modelo deseado en el constructor. Se generará automáticamente cuando ejecutes Magento o el compilador.
[editar un año después]
Incluso si la respuesta anterior funciona, no es la mejor práctica. Para la forma correcta de hacerlo, vea la respuesta de Anton.
error recibido - Class Magento \ Framework \ ObjectManager no existe
Anas Mansuri
5
Técnicamente si tiene una instancia de la \Magento\Framework\ObjectManagerque puede llamar createde gety esto le dará el objeto que desea. Pero realmente depende de dónde desea usar esto, ya que Magento 2 cambia hacia la inyección de dependencia a través del constructor .
Respuestas:
Magento desaconseja estrictamente el uso de ObjectManager directamente. Proporciona clases de servicio que lo abstraen para todos los escenarios.
Para todos los no inyectables (modelos) debe usar la fábrica:
Todo lo que tiene que hacer es preguntarle a la fábrica del modelo deseado en el constructor. Se generará automáticamente cuando ejecutes Magento o el compilador.
fuente
Puedes hacerlo así:
pero debes asegurarte de que el
_objectManager
miembro existe.En la mayoría de las clases debería, pero si no lo inyecta en el constructor. Me gusta esto:
[editar un año después]
Incluso si la respuesta anterior funciona, no es la mejor práctica. Para la forma correcta de hacerlo, vea la respuesta de Anton.
fuente
Técnicamente si tiene una instancia de la
\Magento\Framework\ObjectManager
que puede llamarcreate
deget
y esto le dará el objeto que desea. Pero realmente depende de dónde desea usar esto, ya que Magento 2 cambia hacia la inyección de dependencia a través del constructor .fuente