はじめに
モデルからdatetime型のカラムを取得し、jsonで出力すると
日付がYYYY-MM-DDT00:00:00.000000Z(ISO8601)で出力される。
調べてみるとlaravel7から変更された仕様とのこと。
■参考URL
https://laravel.com/docs/8.x/eloquent-serialization#date-serialization
楽観排他チェックに更新日を使っているため、ISO8601では困る。
共通で日付を変換できるように修正する。
対応方針
\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasAttributes.php
/**
* Prepare a date for array / JSON serialization.
*
* @param \DateTimeInterface $date
* @return string
*/
protected function serializeDate(DateTimeInterface $date)
{
// return Carbon::instance($date)->toJSON();
return $date->format('Y-m-d H:i:s');
}
よくはないがフレームワーク内を修正。
終わり
参考サイトではserializeDateをオーバーライドすると書いてあるが、
どうすればいいかわからず。
とりあえずの対処方法を残します。