DATETIMEカラムに Carbon::now() の値を保存したとします。
$table->dateTime('confirmed_at', $precision = 0)->nullable();
$post->confirmed_at = Carbon::now();
$post->save();
この状態では,データはただの文字列なので Carbon インスタンスとして機能しません。
$post->confirmed_at->format('Y/m/d');
// Call to a member function format() on string
アクセサを定義する
confirmed_at
にアクセスした際に,自動的に Carbonインスタンスに変換する処理を書きます。
Post.php
use Carbon\Carbon;
/**
* @param string $value
* @return \Carbon\Carbon
*/
public function getConfirmedAtAttribute(string $value): Carbon
{
return Carbon::parse($value);
}
これで $post->confirmed_at
が Carbon インスタンスを返すようになります。