Magento2.1.0 montrant une erreur Le paramètre requis 'theme_dir' n'a pas été transmis lors de l'enregistrement du produit dans admin

17

Je fais face à cette erreur. Le paramètre requis "theme_dir" n'a pas été transmis lorsque j'essaie d'enregistrer le produit dans admin. J'ai vérifié la configuration du thème assigné aux magasins. Récemment, je suis passé de 2.0.7 à 2.1.0. J'ai également vérifié que le fichier registration.php du répertoire de thèmes existe. Tout le monde est tombé sur ce problème.

Fabian Schmengler
la source

Réponses:

42

Cette erreur apparaît lorsque vous supprimez un dossier de modèles, qui est toujours référencé dans la base de données. Le moyen le plus simple de le corriger est d'aller dans la base de données et dans la table 'theme', trouver le nom du thème qui n'existe pas dans app/design/frontend/package.

DELETE la référence au thème manquant du tableau.

Vu Anh
la source
Ce devrait être la réponse acceptée.
seanbreeden
PARFAIT .. TRAVAILLÉ COMME UN CHARME
Zorox
Ce devrait être la réponse acceptée.
Daan van den Bergh
2 enregistrements étaient supplémentaires dans ma base de données J'ai supprimé BUt ne fonctionnait toujours pas
HaFiz Umer
10

Je peux confirmer que la réponse de Vu Anh fonctionne. Voici une explication pourquoi cela se produit lorsque les produits sont enregistrés , bien que le thème supprimé ne soit utilisé nulle part:

Après avoir enregistré un produit, le cache d'images est régénéré pour tous les thèmes. Chaque thème peut avoir ses propres formats de taille d'image, définis dans etc/view.xmlet tous seront générés.

Mais au lieu de rechercher les thèmes configurés dans tous les magasins, Magento passe en revue tous les thèmes du themetableau.

Si vous n'avez pas correctement désinstallé un thème et que vous venez de supprimer les fichiers, l'entrée orpheline fait référence à un chemin inexistant et l'exception décrite est levée.

Fabian Schmengler
la source
2

J'ai la même erreur. Le paramètre requis «theme_dir» n'a pas été transmis . Je travaille avec 2.1.0 depuis le début, pas avec la mise à jour. Et j'ai un attribut de produit personnalisé "style".

Le problème se produit lorsque j'essaie d'enregistrer la nouvelle photo dans le matériau. Sans l'image, le produit est enregistré normalement.

Correction en commentant l'exception sous le fichier:

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

Ça a marché pour moi. Mais je pense que c'est un hack.

Galina
la source
C'est définitivement un hack. Corrigez le problème au lieu de supprimer l'exception.
Daan van den Bergh,
-2

Enfin, je l'ai corrigé en commentant l'exception ci-dessous 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");
}
7ochem
la source
4
Mais cela ne corrige pas l'erreur, seulement ne l'affiche plus. (Je pense que la solution de Vu Anh est plus un correctif)
BvdVen
3
Ce n'est pas la bonne façon de résoudre ce problème! Vérifiez la réponse de Vu Anh.
médina du
2
Ce n'est pas une meilleure solution. S'il vous plaît ne faites pas cela
Ankit Shah