codeigniter - 实体保存到数据库错误的日期格式codeigniter 4
问题描述
我的实体如下所示:
class Request extends Entity
{
protected $casts = [
'id' => 'integer',
'added_at' => 'datetime',
'deadline' => 'datetime',
'completed' => 'integer'
];
}
保存时,模型会为 sql 查询生成 'Y/m/d' 格式的日期字段,但是我的数据库无法解析这个。调用时如何强制它以“Ymd”格式生成日期$myModel->insert($myEntity)
?
解决方案
实体可以选择设置器。每当您执行保存实体时,它都会在您的情况下执行验证或转换。假设你想改变deadline
这种情况下的形式,你必须为你的 Setter 设置deadline
如下:
public function setDeadline(string $dateString)
{
$this->attributes['deadline'] = $dateString;
return $this;
}
在以下行中:$this->attributes['deadline'] = $dateString;
您将使用像 Carbon 这样的库来格式化$dateString
,然后重新分配您的变量截止日期。参考链接:
https ://codeigniter4.github.io/userguide/models/entities.html
推荐阅读
- javascript - ReactGa 在异步获取轨道 id 时初始化
- d3.js - D3.js:鼠标悬停不会在缩放的 topojson 功能上触发
- php - 防止在 Woocommerce 中多次处理数据谢谢钩子
- security - Java 密钥库 PrivateKeyEntry 与trustedCertEntry
- javascript - 使用带有 Node.js 的 REST api 服务器连接到我的 sql 数据库的问题
- php - Laravel 5.5 '没有计划的命令准备好运行。'
- asp.net-core - 从 Asp.Net Core 中的 RouteCollection 中删除路由并添加具有相同路由名称的新路由(nopCommerce-4.00)
- android - 如何从子子片段正确调用 startActivityForResult
- python - Python、os.system 和 subprocess.call 都不适用于可变字符串命令
- javascript - 如何将 three.js 纹理作为“WebGLTexture”传递给 WEBGL 代码?