我想在指定日期添加天数。这是我的代码:
if (Carbon::now() <= $campaign->s_lastrun->addDays(28)) {
$onAir = 1;
}
直到我对我的数据库进行了一些更改才有效,现在我收到错误:Call to a member function addDays() on string
即使s_lastrun
的列类型为DATE
。
有什么想法吗?
答案 0 :(得分:3)
你需要告诉Eloquent这是一个约会,以便它将它转换为Carbon。根据{{3}}:
默认情况下,Eloquent会将created_at和updated_at列转换为Carbon实例,它扩展了PHP DateTime类以提供各种有用的方法。您可以通过覆盖模型的$ dates属性来自定义哪些日期会自动变异,甚至完全禁用此变异。
因此,在您的模型中,添加以下内容:
protected $dates = ['created_at', 'updated_at', 's_lastrun'];
如果您没有使用默认时间戳,请删除created_at
和updated_at
。
答案 1 :(得分:1)
由于addDays()
无法应用于字符串变量,
您必须使用Carbon解析$campaign->s_lastrun
:
Carbon::parse($campaign->s_lastrun)
然后像这样比较:
if (Carbon::now() <= Carbon::parse($campaign->s_lastrun)->addDays(28)) {
$onAir = 1;
}