关于Carbon的疑问

laravel版本是8.5,例子1和例子2中,都是加7天,为什么$user->created_at本身没有变化,是因为laravel自动把模型字段的Carbon类型转为CarbonImmutable类型了吗?

例子1

 use Carbon/Carbon;
 use App/Models/User;

 $user = new User;
 $user->created_at = Carbon::now();
 \Log::info($user->created_at->toDateTimeString());//2022-04-29 11:31:28
 $user->created_at->addDays(7);
 \Log::info($user->created_at->toDateTimeString());//还是 2022-04-29 11:31:28

例子2

 use Carbon/Carbon;

 $now = Carbon::now();
 \Log::info($now->toDateTimeString());//2022-04-29 11:31:28
 $now->addDays(7);
 \Log::info($now->toDateTimeString());//变成了 2022-05-06 11:31:28
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
aab
最佳答案

Laravel Model 中的 DateTime 属性的值,是以字符串的形式保存的,get的时候会转换成为一个 Carbon 对象,set 的时候会转换成为一个字符串。所以你在外边修改没有作用。

2年前 评论
williamQian (楼主) 2年前
讨论数量: 2
aab

Laravel Model 中的 DateTime 属性的值,是以字符串的形式保存的,get的时候会转换成为一个 Carbon 对象,set 的时候会转换成为一个字符串。所以你在外边修改没有作用。

2年前 评论
williamQian (楼主) 2年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!