关于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
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
aab
最佳答案

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

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

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

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

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