Magento2.1.0 mostrando error El parámetro requerido 'theme_dir' no se pasó al guardar el producto en admin


17

Me enfrento a este error El parámetro requerido 'theme_dir' no se pasó cuando intento guardar el producto en admin. Revisé la configuración del tema que se asignó a las tiendas. Recientemente he actualizado de 2.0.7 a 2.1.0. También he comprobado que el archivo de registro de directorio theme.php existe. Cualquiera se encontró con este problema.

Respuestas:


42

Este error aparece cuando elimina una carpeta de plantilla, a la que todavía se hace referencia en la base de datos. La forma más sencilla de solucionarlo es ir a la base de datos y, en la tabla 'tema', encontrar el nombre del tema que no existe app/design/frontend/package.

DELETE La referencia al tema que falta en la tabla.


Esta debería ser la respuesta aceptada.
seanbreeden

PERFECTO .. ​​TRABAJÓ COMO UN
ENCANTO

Esta debería ser la respuesta aceptada.
Daan van den Bergh el

2 registros fue extra en mi base de datos que deteleted pero aún no funciona
Hafiz Umer

10

Puedo confirmar que la respuesta de Vu Anh funciona. Aquí hay una explicación de por qué sucede esto cuando se guardan productos , aunque el tema eliminado no se usa en ninguna parte:

Después de guardar un producto, el caché de imágenes se regenera para todos los temas. Cada tema puede tener sus propios formatos de tamaño de imagen, definidos etc/view.xmly todos estos serán generados.

Pero en lugar de buscar los temas configurados en todas las tiendas, Magento revisa todos los temas de la themetabla.

Si no desinstaló correctamente un tema y simplemente eliminó los archivos, la entrada huérfana se refiere a una ruta inexistente y se genera la excepción descrita.


2

Tengo el mismo error No se pasó el parámetro requerido 'theme_dir' . Trabajo con 2.1.0 desde el principio, no con la actualización. Y tengo un atributo de producto personalizado "estilo".

El problema ocurre cuando intento guardar la nueva foto en el material. Sin la imagen, el producto se guardó normalmente.

Solucione comentando la excepción debajo del archivo:

vendor/magento/framework/view/design/Fallbck/Rule/Simple.php  

A mi me funciono. Pero creo que es un truco.


Esto es definitivamente un truco. Solucione el problema en lugar de eliminar la excepción.
Daan van den Bergh el

-2

Finalmente lo arreglé comentando la excepción debajo vendor/magento/framework/View/Design/Fallback/Rule/Simple.php.

if (in_array($placeholder, $this->optionalParams)) {
    return [];
} else {
    return [];
    //throw new \InvalidArgumentException("Required parameter '{$placeholder}' was not passed");
}

44
Pero esto no soluciona el error, solo ya no lo muestra. (Creo que la solución de Vu Anh es más una solución)
BvdVen

3
¡Esta no es la forma correcta de solucionar este problema! Comprueba la respuesta de Vu Anh.
medina

2
Esta no es la mejor solución. Por favor no hagas esto
Ankit Shah
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.