Magento2.1.0 menunjukkan kesalahan Parameter yang diperlukan 'theme_dir' tidak lulus saat menyimpan produk di admin

17

Saya menghadapi kesalahan ini Parameter yang diperlukan 'theme_dir' tidak lulus ketika saya mencoba menyimpan produk di admin. Saya memeriksa konfigurasi tema yang ditugaskan untuk toko. Baru-baru ini saya telah ditingkatkan dari 2.0.7 ke 2.1.0.Also saya telah memeriksa direktori tema registration.php file yang ada. Siapa pun yang menemukan masalah ini.

Fabian Schmengler
sumber

Jawaban:

42

Kesalahan ini muncul ketika Anda menghapus folder templat, yang masih dirujuk dalam database. Cara paling sederhana untuk memperbaikinya adalah, buka database, dan dalam tabel 'tema', cari nama tema yang tidak ada di dalamnya app/design/frontend/package.

DELETE referensi ke tema yang hilang dari tabel.

Vu Anh
sumber
Ini harus menjadi jawaban yang diterima.
seanbreeden
SEMPURNA .. BEKERJA SEPERTI PESONA
Zorox
Ini harus menjadi jawaban yang diterima.
Daan van den Bergh
2 catatan ekstra di basis data saya. Saya dihapus tapi masih tidak berfungsi
HaFiz Umer
10

Saya dapat mengkonfirmasi bahwa jawaban oleh Vu Anh berfungsi. Berikut adalah penjelasan mengapa ini terjadi ketika produk disimpan , meskipun tema yang dihapus tidak digunakan di mana pun:

Setelah menyimpan produk, cache gambar dibuat ulang untuk semua tema. Setiap tema dapat memiliki format ukuran gambarnya sendiri, didefinisikan dalam etc/view.xmldan semua ini akan dihasilkan.

Tetapi alih-alih mencari tema yang dikonfigurasikan di semua toko, Magento menelusuri semua tema di themetabel.

Jika Anda tidak mencopot tema dengan benar dan hanya menghapus file, entri yatim mengacu pada jalur yang tidak ada dan pengecualian yang dijelaskan dilemparkan.

Fabian Schmengler
sumber
2

Saya memiliki kesalahan yang sama Parameter yang diperlukan 'theme_dir' tidak lulus . Saya bekerja dengan 2.1.0 dari awal, bukan dengan memperbarui. Dan saya punya satu atribut produk "style".

Masalah terjadi ketika saya mencoba menyimpan foto baru di materi. Tanpa gambar, produk disimpan secara normal.

Perbaiki dengan mengomentari pengecualian di bawah file:

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

Itu berhasil untuk saya. Tapi saya pikir ini adalah hack.

Galina
sumber
Ini pastinya sebuah hack. Perbaiki masalah alih-alih menghapus pengecualian.
Daan van den Bergh
-2

Akhirnya saya memperbaikinya dengan mengomentari pengecualian di bawah 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
sumber
4
Tapi ini tidak memperbaiki kesalahan, hanya tidak menunjukkannya lagi. (Saya pikir solusi Vu Anh lebih merupakan perbaikan)
BvdVen
3
Ini bukan cara yang tepat untuk memperbaiki masalah ini! Periksa jawabannya dari Vu Anh.
medina
2
Ini bukan solusi terbaik. Tolong jangan lakukan ini
Ankit Shah