Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Carbon.php第425行中的InvalidArgumentException:尾部数据_Php_Laravel_Laravel 5_Php Carbon - Fatal编程技术网

Carbon.php第425行中的InvalidArgumentException:尾部数据

Carbon.php第425行中的InvalidArgumentException:尾部数据,php,laravel,laravel-5,php-carbon,Php,Laravel,Laravel 5,Php Carbon,我最近刚从MySQL迁移到PostgreSQL。 我注意到我一直犯这个错误 InvalidArgumentException in Carbon.php line 425: Trailing data 然后,我在我的应用程序中对Carbon::进行了全局搜索。我在15个文件中找到了47个匹配项 如何在不修改所有这些文件的情况下修复此错误 我把我的东西丢了这是我得到的 Capture {#412 ▼ #table: "captures" #connection: null #prim

我最近刚从MySQL迁移到PostgreSQL。 我注意到我一直犯这个错误

InvalidArgumentException in Carbon.php line 425:
Trailing data
然后,我在我的应用程序中对Carbon::进行了全局搜索。我在15个文件中找到了47个匹配项

如何在不修改所有这些文件的情况下修复此错误

我把我的东西丢了这是我得到的

Capture {#412 ▼
  #table: "captures"
  #connection: null
  #primaryKey: "id"
  #perPage: 15
  +incrementing: true
  +timestamps: true
  #attributes: array:6 [▼
    "id" => 65
    "type" => "cpe"
    "cpe_mac" => "000D6721A5EE"
    "device_mac" => null
    "created_at" => "2016-05-03 11:20:10-04"
    "updated_at" => "2016-05-03 11:20:10-04"
  ]

   ....

这正是你所想的。这里的问题是PostgreSQL中的timestamp列实际上需要一种不同的时间戳格式,该格式的末尾包含毫秒。”Y-m-dh:i:s.u’而不是Carbon的默认格式和MySQL的timestamp列,后者只是‘Y-m-dh:i:s’。为了解决此问题,请告诉PostgreSQL您不想将时区作为字符串的一部分存储在时间戳列中:


您需要对所有具有时间戳的表和列执行此操作。

这正是您的想法。这里的问题是PostgreSQL中的timestamp列实际上需要一种不同的时间戳格式,该格式的末尾包含毫秒。”Y-m-dh:i:s.u’而不是Carbon的默认格式和MySQL的timestamp列,后者只是‘Y-m-dh:i:s’。为了解决此问题,请告诉PostgreSQL您不想将时区作为字符串的一部分存储在时间戳列中:


您需要对所有具有时间戳的表和列执行此操作。

意识到这是一篇旧文章,但我通过创建全局范围解决了此问题。见:

然后我做了:

$builder->addSelect['select'、'cols'、'here',在'YYYY-MM-DD HH24:MI:SS'创建时添加到'u charcreated'


这就意味着与拉威尔的合作是恰当的。由于我只从这个DB中读取,不需要考虑更新时间戳。 意识到这是一篇老文章,但我通过创建一个全球范围解决了这个问题。见:

然后我做了:

$builder->addSelect['select'、'cols'、'here',在'YYYY-MM-DD HH24:MI:SS'创建时添加到'u charcreated'


这就意味着与拉威尔的合作是恰当的。由于我只从这个DB中读取,不需要考虑更新时间戳。 由于这是一个碳错误,这是因为您可能需要以毫秒为单位的日期

"created_at" => "2018-04-19 07:01:19.929554"
可以将以下方法添加到基础模型中

public function getDateFormat()
{
     return 'Y-m-d H:i:s.u';
}
如果您在Postgres中使用带时区的时间,则格式应为:

Y-m-d H:i:s.uO

由于这是一个碳错误,这是因为您可能需要以毫秒为单位的日期

"created_at" => "2018-04-19 07:01:19.929554"
可以将以下方法添加到基础模型中

public function getDateFormat()
{
     return 'Y-m-d H:i:s.u';
}
如果您在Postgres中使用带时区的时间,则格式应为:

Y-m-d H:i:s.uO

您从哪个版本迁移了MySQL?时间戳字段在不同的MySQL存储引擎中具有不同的存储值,并且会因PostgreSQL而异。来源:由于环境原因,我不得不从MySQL 5.7迁移到MySQL 5.5,我也经历了同样的情况。事实证明,5.7时间戳也节省了毫秒。您迁移了哪个版本的MySQL?时间戳字段在不同的MySQL存储引擎中具有不同的存储值,并且会因PostgreSQL而异。来源:由于环境原因,我不得不从MySQL 5.7迁移到MySQL 5.5,我也经历了同样的情况。原来5.7时间戳也节省了毫秒。我如何更改整个数据库?我大约有10张桌子。请告诉我。@I我们只是一个接一个地做。将它们另存为迁移并在其中运行rawSQL,这样,您仍然可以在未来的任何环境中执行php-artisan迁移?DB::语句“ALTER TABLE cloud securities ALTER updated_at SET DATA TYPE timestamp0 with time zone;”@是的。基本上。我如何更改我的整个数据库?我大约有10张桌子。请告诉我。@I我们只是一个接一个地做。将它们另存为迁移并在其中运行rawSQL,这样,您仍然可以在未来的任何环境中执行php-artisan迁移?DB::语句“ALTER TABLE cloud securities ALTER updated_at SET DATA TYPE timestamp0 with time zone;”@是的。大体上