Laravel-更新Postgres列

时间:2018-06-23 05:41:45

标签: php laravel postgresql

因此,我有一个Sequelize Postgres数据库,我正在尝试将其迁移到Laravel项目(5.6+)。其created_atupdated_at使用带有时区的时间戳,因此其中一列如下所示:2018-06-08 20:25:46.184-05

问题是试图更新updated_at列,因为Carbon由于parses timestamps with milliseconds的方式而失败。

(是的,我已经尝试过这些解决方案。)

这是我的模型尝试更新其updated_at列的时间戳时的错误:

  

SQLSTATE [22007]:无效的日期时间格式:7错误:无效的输入   时区类型为timestamp的语法:“ 2018-06-23 05:24:43 +”(SQL:   插入“ public”。“ Books”(“ uuid”,“ name”,“ updatedAt”,   “ createdAt”)值(e9b9496c-fe52-4c5c-ab46-ff2a986f2dfb,“最后   晚上”,2018-06-23 05:24:43 +,2018-06-23 05:24:43 +))

这是我的模态:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Books extends Model
{
    public $table = 'public.Books';

    // Postgres to conform to Carbon instances
    protected $dateFormat = 'Y-m-d H:i:s+';
    const CREATED_AT = 'createdAt';
    const UPDATED_AT = 'updatedAt';

    protected $primaryKey = 'uuid';

    protected $guarded = [''];
}

如何使我的模型(Laravel / Carbon)接受timestamp with timezone的当前列类型?

我尝试过:

public function getDateFormat()
{
    return 'Y-m-d H:i:s.u';
}

但是这给了我:Trailing data来自2018-06-23 05:38:49.484535-05这样的Carbon数据实例的错误。

0 个答案:

没有答案