【问题标题】:Entity saving to database wrong date format codeigniter 4实体保存到数据库错误的日期格式codeigniter 4
【发布时间】:2020-04-09 18:31:11
【问题描述】:

我的实体如下所示:

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' 格式的日期?

【问题讨论】:

    标签: codeigniter date format entity codeigniter-4


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多