错误:调用字符串上的成员函数 addDays()



我想在指定日期添加天数。这是我的代码:

if (Carbon::now() <= $campaign->s_lastrun->addDays(28)) {
$onAir = 1;
}

它一直有效,直到我对数据库进行了一些更改,现在我收到一个错误:Call to a member function addDays() on string即使s_lastrun列类型为DATE. 有什么想法吗?

你需要告诉 Eloquent 这是一个日期,这样它才能将其转换为 Carbon。根据文档:

默认情况下,Eloquent 会将created_at和updated_at列转换为 Carbon 的实例,从而扩展 PHP DateTime 类以提供各种有用的方法。您可以通过覆盖模型的 $dates 属性来自定义自动更改的日期,甚至完全禁用此更改。

因此,在您的模型中,添加以下内容:

protected $dates = ['created_at', 'updated_at', 's_lastrun'];

删除created_at,如果未使用默认时间戳,请updated_at

由于addDays()不能应用于字符串变量,

您必须像这样使用 Carbon 解析$campaign->s_lastrun

Carbon::parse($campaign->s_lastrun)

然后像这样比较:

if (Carbon::now() <= Carbon::parse($campaign->s_lastrun)->addDays(28)) {
$onAir = 1;
}

相关内容

  • 没有找到相关文章

最新更新