Illuminate Database古いバージョンでsave()時に値が変わる問題

こんにちは、フリーランスエンジニアの太田雅昭です。

古くから使っているシステムなどの場合、古いバージョンを使い続けなければならない状況もあるかと思います。

今回、古いバージョンのIlluminate Databaseを使用した時の問題について書かせていただきます。

Illuminate Databaseのバージョン

2023/10/12現在、最新バージョンは10を超えていますが、今回使用しているのはバージョン8です。

問題

newで作成して値を入れたのはいいのですが、save()した途端なぜか代わりにIDらしきものが入り込んでいるという状況でした。

対策

newのあと一旦save()し、改めて値を入れ直してから再度save()することで正常動作まで持っていくことができました。

追記

という話だったのですが、その後実際に動作を最後まで見てみると、色々処理したあと最終的に全てNull値になっているという事象が発生しました。

結局、インサートはSQLで直書きし、その後Eloquentで取得するということにしました。SQLばんざいおばんざい。