Magento2.1.0のエラーが表示されます必須パラメーター 'theme_dir'は、管理者で製品を保存中に渡されませんでした


17

このエラーに直面しています。管理者で製品を保存しようとすると、必須パラメーター「theme_dir」が渡されませんでした。ストアに割り当てられたテーマ構成を確認しました。最近、2.0.7から2.1.0にアップグレードしました。また、テーマディレクトリregistration.phpファイルが存在することを確認しました。誰もがこの問題に遭遇しました。

回答:


42

データベースでまだ参照されているテンプレートフォルダーを削除すると、このエラーが表示されます。それを修正する最も簡単な方法は、データベースに移動し、テーブル 'theme'で、に存在しないテーマ名を見つけることapp/design/frontend/packageです。

DELETE テーブルから欠落しているテーマへの参照。


これは受け入れられた答えでなければなりません。
ショーンブリーデン

完璧..チャームのように働いた
ゾロックス

これは受け入れられた答えでなければなりません。
ダーン

2つのレコードが、私はdeteleted私のデータベースに余分だったが、それでも動作しない
ハーフィズUmer

10

Vu Anhの答えが機能していることを確認できます。削除されたテーマはどこでも使用されていませんが、製品が保存されたときにこれが発生する理由を説明します

製品を保存すると、すべてのテーマの画像キャッシュが再生成されます。各テーマには独自の画像サイズ形式を定義でき、etc/view.xmlこれらの形式はすべて定義され、これらすべてが生成されます。

しかし、Magentoはすべてのストアで構成されたテーマを探す代わりに、themeテーブル内のすべてのテーマを調べます。

テーマを適切にアンインストールせずにファイルを削除しただけの場合、孤立したエントリは存在しないパスを参照し、説明されている例外がスローされます。


2

同じエラーが発生しました必須パラメーター 'theme_dir'が渡されませんでした。更新ではなく、最初から2.1.0を使用しています。そして、1つのカスタム製品属性「スタイル」があります。

問題は、素材に新しい写真を保存しようとすると発生します。画像がなければ、製品は正常に保存されました。

ファイルの下の例外にコメントを付けて修正します。

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
しかし、これではエラーは修正されず、表示されなくなります。(私はVu Anhの解決策はもっと修正だと思う)
-BvdVen

3
これはこの問題を修正する正しい方法ではありません!Vu Anhからの回答を確認してください。
メディナ

2
これは最善の解決策ではありません。これをしないでください
アンキットシャー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.