ローカル環境でLaravelでサービスを構築していて、ある程度動きが作れたから確認しようと新しいユーザーを追加したとき
SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value........
というエラーが発生しました。
すでにユーザーは1人登録しており、その時は何もエラーが起こらなかったのだけど???と思いつつ、エラー解消のため調査しました。
このエラーはLaravelが出しているものではなく、MySQL側のものだそう。ちなみにMySQLのバージョンは 8.0.21です。
やったこと
こちらの記事を参考に、congig > database.php 内にて
'mysql' => [ 'strict' => false, // trueをfalseに //以下略
上記箇所を修正したところ、エラーが出なくなりました!
でも、テーブルデータを見てみたら name email password のどれも空で登録されている・・・
空でもエラーにならないようにしただけで、根本的な解決にはなっていなかった模様。
解決方法
Userモデルの
protected $fillable = [ 'name', 'email', 'password', ];
この部分を書き換えて上記プロパティを消してしまっていたことが原因でした( TT )
なんでこんな事をしたのか記憶がありませんが、修正して無事新規登録ができるようになりましたとさ。