ショコラ
Laravel なぜかモデルをデータベースに保存すると created_at と updated_at が更新される
「なぜかモデルをデータベースに保存すると created_at と updated_at が更新される」
という現象に遭遇した。
どうも Model の created_at と updated_at は「datetime型」になるようで、
それは Carbonオブジェクト として扱われるようになる。
DBにモデルを保存する際、この Carbon を JSON に変換してから保存しているのですが、
そこで時間が9時間前になってしまう現象が起きてしまったようです。
✔ datetime cast → Carbon
✔ 何も指定しない → string
✔ created_at系は Carbon
もっさん先輩
Mdels に Model クラスを作成して対応してみました。
namespace App\Models;
class Model extends \Illuminate\Database\Eloquent\Model
{
protected function serializeDate( \DateTimeInterface $date ) {
return $date->format('Y-m-d H:i:s');
}
}以上