Laravel 9 を使用して Web を開発しています。コマンド sail php make:migration add_bought_to_products_table
を使用して、「bought」という名前のブール列を products テーブルに追加します。 Eloquent ヘルパーを使用して値を変更しようとしている場合 (Product::where('id', $product->id)->update(array('bought'=>true))
データベースの値は更新されませんでした< /strong>。これを見ると、移行によって作成された新しいフィールド「購入」が 読み取り専用: 対応するテーブル列がありませんとマークされていることがわかりました。 .
移行コードは次のとおりです:
リーリーこれはデータベースのスクリーンショットです:
キャッシュをクリーンアップしてデータベースを再構築し、ロールバックして再度移行することを何度も試みました。奇妙なことに、私は以前に「可視性」フィールドを追加していましたが、問題が発生したフィールドとまったく同じコードと手順を使用して完璧に機能しました 。 ###の解き方?
データベース ツールを再起動したところ、問題は解決しました。
頭を悩ませた結果、Docker コンテナを再起動するだけで問題を解決できました。この問題は Laravel とは関係なく、Docker と関係があるようです。
同様の問題が発生した場合: Docker とすべてのコンテナーを必ず終了し、再起動してください。