Estaba tratando de instalar un complemento y eliminé var / generation y var / cache / *. Verifiqué el MAGE_MODE y estoy en desarrollador, pero ahora cuando accedo al front-end y al administrador recibo errores aleatorios que dicen cosas malas como:
Class Magento\Customer\Model\CustomerFactory does not exist
La clase Magento \ Sales \ Model \ ResourceModel \ Report \ OrderFactory no existe
Algunas de las clases se están creando, pero no todas. Intenté borrar el caché nuevamente y la carpeta de generación, pero luego recibo los mismos errores.
¿Algunas ideas?
Respuestas:
Magento 2 genera clases de Factory dentro del
var/generation
directorio. Entonces, si hay un problema de permiso de carpeta o un problema de propietario de carpeta con ese directorio, entonces la clase de fábrica no se puede generar y obtiene ese error.Cuando borra el
var/generation
directorio y establece el permiso apropiado, entonces este error debe resolverse.Ver más sobre Generación de código en Magento 2
fuente
var/di
ovar/cache
, ver devdocs.magento.com/guides/v2.2/install-gde/trouble/…Para mí, eliminé la
var/generation
carpeta y luego ejecuté lomagento setup:di:compile
que generó todas las clases necesarias.(en mi caso: luego encontré un problema de caché, eliminé la carpeta de caché inicial)
Entonces resolvió mi problema. Salud !!
fuente
En magento, las nuevas versiones como 2.2.2 y superiores cambiaron esta ruta de generación de código a
por lo que también debe verificar los permisos para esta carpeta. Debe ejecutar el siguiente comando en la raíz del directorio de instalación de Magento para resolver este problema:
fuente
Los siguientes comandos son necesarios para ser ejecutados:
Además, se necesita el permiso adecuado. Si está en producción, debe ejecutar los permisos adecuados. Pero, en la máquina local, puede ejecutar el permiso completo:
fuente
Otorgue permiso al 777 y cambie la propiedad a www-data de la carpeta generada / código y luego ejecute el comando
sudo php bin/magento setup:di:compile
clear cache y aumente su problema está resueltofuente
Es solo un
<magento-root>/var/
problema de permiso de carpeta.Ejecute el siguiente comando utilizando el modo CLI
fuente
Magento 2 crea las clases de fábrica en la
var/generation
carpeta y si agrega un nuevo parámetro en su__construct()
y su clase de Fábrica no existe, entonces Magento 2 arroja el mensaje de error anterior. Aunque ya hay pocas soluciones para su pregunta, puedo sugerirle otra solución que no requiera que borre su carpeta de generación. Utilice el siguiente comando después de realizar cualquier cambio relacionado con las clases Factory:Este comando puede ser más útil en el servidor de producción.
fuente
Clase ... La fábrica no existe significa que su clase de modelo no está cargada. Como Magento 2 se basa en la programación modular, debemos especificar la clase de modelo donde queremos usarla explícitamente. Podemos usar nuestra clase de modelo en dos tipos:
1.por "uso"
Directamente
Cuando presiona la URL ( http://dominio.com/ nombre del módulo) de su complemento en el navegador, Magento genera el código para su módulo de la siguiente manera:
En su caso, debe verificar que "CustomerFactory" y "OrderFactory" se usen como el formato anterior o no.
fuente