php - 为什么我将时间戳保存在数据库中,当我检索它时它变成了字符串?(拉拉维尔)
问题描述
我很难确定当我检索它时时间戳变成字符串的原因。当我转储它时,它是一个明确的时间戳类型。有人帮我解决这个问题的原因和可能的解决方案。
这是我保存它的方法。
$user->start_at = Carbon::parse(now()->addDay());
以及从数据库保存后我如何使用它。
$user->start_at->lte(now())
但它返回一个错误(它说它甚至是它的时间戳)
错误:对文件中的字符串调用成员函数 lte()
我尝试添加public $timestamps = true;
模型,但仍然无法正常工作。
解决方案
您需要告诉 Eloquent 该字段是一个日期字段,并带有dates
值。这会将指定的任何字段转换为 Carbon 对象。将此行添加到模型类的顶部。
protected $dates = ['start_at'];
https://laravel.com/docs/8.x/eloquent-mutators#date-casting
或者
protected $casts = [
'start_at' => 'datetime:Y-m-d H:i:s',
];
推荐阅读
- javascript - 如何仅根据路由更改显示反应组件?
- android - API 适用于浏览器,但不适用于邮递员或应用程序
- angular - 将多个参数传递给 AngularDart 5 中的结构指令
- java - PDF/A 已通过预检正确验证,但在线 pdf-tools 未对其进行验证
- c# - 为什么我的绑定列表
使用foreach循环返回空以在剃须刀页面上显示值? - for-loop - 执行命令输出到多行
- javascript - Object.defineproperty() 设置未按预期工作,抛出最大调用堆栈错误
- javascript - 我不在 reactjs 中使用 axios 发送 json 数据,但邮递员正在工作
- amazon-web-services - 在 AWS 上启动并行作业的最简单方法是什么?
- reactjs - 如何使用其边界检测 React 中底层元素的 onMouseOver