因此,我有一个Sequelize Postgres数据库,我正在尝试将其迁移到Laravel项目(5.6+)。其created_at
和updated_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数据实例的错误。