回答:
1つ以上のモジュールを有効にした場合は、実行magento setup:upgrade
してデータベーススキーマを更新する必要があります。
デフォルトでは、magento setup:upgrade
コンパイルされたコードとキャッシュをクリアします。通常、magento setup:upgrade
コンポーネントの更新にはを使用し、各コンポーネントには異なるコンパイル済みクラスが必要になる場合があります。
magento setup:upgrade --keep-generated
オプションの--keep-generated
オプションは、経験豊富なシステムインテグレーターが限られた状況でのみ使用する必要があります。--keep-generated
開発環境では使用しないでください。
このオプションのパラメーターを不適切に使用すると、コードの実行中にエラーが発生する可能性があります。
トピック作成者が私に尋ねたように:
しかし、私にとっては奇妙なことに、変更を加えるたびに、setup:upgradeコマンドを実行するまで変更は表示されません。var / cacheを削除しても、表示されません。この理由を知っていますか?
var/cache
Magento 2では、Magento 1のように変更を表示するのに十分ではありません。Magento2では、コード内で変更を加えた後(特に、コンストラクタ内で何かを変更した場合)は、クリアする必要がありますvar/generation
(var/di
コードをコンパイルした場合)。
またvar/view_preprocessed
、テンプレートファイル(.phtml)内の何かを変更した場合もクリアする必要があります。
残りの意志がに行くvar/cache
と、var/full_page_cache
お役に立てれば。
setup:upgrade
コマンドがあなたのためにそれらをクリアしています。このページを参照してください。私はあなたのモジュールが有効になっていると仮定しています。そうでなければ、それも問題を引き起こします。
モジュールを有効にしたらmagento setup:upgrade
、データベーススキーマを更新するために実行する必要があるモジュールのバージョンを変更します。
その他の場合、クラスコンストラクターに新しいデータを追加すると、magento setup:upgrade
var / generationフォルダーがクリアされるため、実行する必要があります。それを理解するには、var
フォルダーの書き込みおよび読み取り権限を削除して、コマンドを実行しますmagento setup:upgrade
このようなエラーメッセージが表示されます。これ
Command line user does not have read and write permissions on var/generation directory. Please address this issue before using Magento command line.
は、このコマンドがフォルダーvar / generationをクリアしていることを意味します。magento setup:upgrade
コマンドを実行せずに変更を取得する場合は、これらの3つのフォルダーをクリアする必要があります
rm -rf var/cache/* var/page_cache/* var/generation/*