Magento2.1.0, що показує помилку Необхідний параметр 'theme_dir' не був переданий під час збереження продукту в адміністраторі


17

Я зіткнувся з цією помилкою Обов'язковий параметр 'theme_dir' не був переданий, коли я намагаюся зберегти продукт в адміністраторі. Я перевірив конфігурацію теми, яку вона призначила магазинам. В останній час я модернізував від 2.0.7 до 2.1.0.Also я перевірив каталог теми registration.php файл існує. Хто-небудь стикався з цим питанням.

Відповіді:


42

Ця помилка з’являється, коли ви видаляєте папку шаблонів, на яку все ще посилається база даних. Найпростіший спосіб її виправити - перейти до бази даних і в таблиці "тема" знайти ім'я теми, в якій не існує app/design/frontend/package.

DELETE посилання на відсутню тему з таблиці.


Це має бути прийнятою відповіддю.
seanbreeden


Це має бути прийнятою відповіддю.
Даан ван ден Берг

У моїй базі даних було додатково 2 я виявив, що БУт все ще не працює
HaFiz Umer,

10

Я можу підтвердити, що відповідь Ву Ань працює. Ось пояснення, чому це відбувається, коли продукти зберігаються , хоча видалена тема ніде не використовується:

Після збереження продукту кеш зображень відновлюється для всіх тем. Кожна тема може мати свої власні формати розмірів зображення, визначені в, etc/view.xmlі всі вони будуть генеровані.

Але замість того, щоб шукати налаштовані теми у всіх магазинах, Magento переглядає всі теми в themeтаблиці.

Якщо ви не видалили тему належним чином і просто видалили файли, осиротіла запис посилається на неіснуючий шлях і описується виняток.


2

У мене така ж помилка Обов’язковий параметр 'theme_dir' не був переданий . Я працюю з 2.1.0 з самого початку, а не з оновленням. І у мене є один спеціальний атрибут продукту "стиль".

Проблема виникає, коли я намагаюся зберегти нове фото в матеріалі. Без зображення продукт зберігається нормально.

Виправити за допомогою коментування виняток під файлом:

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

Це працювало для мене. Але я думаю, що це хак.


Це, безумовно, хак. Вирішіть проблему замість видалення винятку.
Даан ван ден Берг

-2

Нарешті я це виправив, коментуючи виняток під 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");
}

4
Але це не виправляє помилку, лише не показує її більше. (Я думаю, що рішення Ву-Ан - це більше виправлення)
BvdVen

3
Це не правильний спосіб виправити це питання! Перевірте відповідь Ву Ань.
medina

2
Це не найкраще рішення. Будь ласка, не робіть цього
Анкіт Шах
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.