实体保存到数据库错误的日期格式 codeigniter 4

Entity saving to database wrong date format codeigniter 4

我的实体如下所示:

class Request extends Entity
{
    protected $casts = [
        'id'                => 'integer',
        'added_at'          => 'datetime',
        'deadline'          => 'datetime',
        'completed'         => 'integer'
    ]; 
}

保存时,模型会为 sql 查询生成 'Y/m/d' 格式的日期字段,但是我的数据库无法解析它。如何在调用 $myModel->insert($myEntity) 时强制它以 'Y-m-d' 格式生成日期?

实体有二传手选项。每当您执行保存实体时,它都会根据您的情况执行验证或转换。假设您想更改 deadline 的形式,在这种情况下,您必须为 deadline 设置 Setter,如下所示:

public function setDeadline(string $dateString)
{
    $this->attributes['deadline'] = $dateString;

    return $this;
}

在下一行中:$this->attributes['deadline'] = $dateString; 您将使用像 Carbon 这样的库来格式化 $dateString,然后重新分配您的变量截止日期。参考 link : https://codeigniter4.github.io/userguide/models/entities.html