Laravel 5 如何将从数据库选择的6个月增加到_日期字段?

Laravel 5 如何将从数据库选择的6个月增加到_日期字段?,laravel-5,Laravel 5,我正在做我的项目,希望从获取日期到存档日期增加6个月,如果最后一个到存档日期已经过去,那么再增加6个月,依此类推,我能做些什么 $abc=(Session::get('email'); $email=$request->input('email'); if(维护::where('email','=',$email)){ $users=Carbon::create(2019,0,30)->addMonths(6)->toDatestring(); if(Maintenance::where('Ma

我正在做我的项目,希望从获取日期到存档日期增加6个月,如果最后一个到存档日期已经过去,那么再增加6个月,依此类推,我能做些什么

$abc=(Session::get('email');
$email=$request->input('email');
if(维护::where('email','=',$email)){
$users=Carbon::create(2019,0,30)->addMonths(6)->toDatestring();
if(Maintenance::where('Maintenance_status','=','PAID')->orderBy('todate','DESC')){
$check=Maintenance::select('to_date')->where('Maintenance_status','=','PAID')->orderBy('to_date','DESC')->get();
//$users=碳($check[0])->addmoths(6);
$users=Carbon::addMonths(6)->toDatestring();

我预计输出为2019年6月30日、2019年12月30日等,但实际输出仅使用碳元素增加一次,我希望从数据库日期增加获取量。看起来您正在覆盖变量,而不是添加到变量中

$users=Carbon\Carbon::create(2019,0,30)->addMonths(6)->toDatestring();
返回2019-06-30

$users=Carbon\Carbon::addMonths(6)->toDatestring();
会覆盖它,但实际上会破坏“PHP错误:调用字符串上的成员函数addMonths()”

不要将字符串存储为变量。相反,请将其作为Carbon的实例保存,以便可以对其调用函数。然后在需要时调用
toDatestring()

它看起来像这样:

$date\u to\u increment=Carbon\Carbon::create(2019,0,30)->addMonths(6);
echo($date_to_increment->toDatestring());//2019-06-30
如果($your_条件){
$date\u to\u增量->addMonths(6);
echo($date_to_increment->toDatestring());//2019-12-30
}
至于将其应用于您的案例,有几个问题。您的第一个条件无效。我相信它将始终返回true,因为您从未执行查询。我还假设,由于您匹配的是一封电子邮件,因此将只有一个结果。因此,让我们使用查询生成器方法
first()
保存步骤,因为这将返回单个条目而不是数组

$maintenance=maintenance::where('email','=',$email)->first();
如果(维修费){
//做事
}
然后,还有一些条件存在类似问题,但更重要的是,它们正在重新查询,因此每次都会丢失集合中的限制

相反:

$maintenance=maintenance::where('email','=',$email)->first();
如果(维修费){
如果($maintenance->maintenance\u status===‘PAID’){
//做点什么
}
}
最后,要使用数据库中的值:

if($maintenance->maintenance\u status===‘PAID’){
$date=Carbon\Carbon::parse($maintenance->to_date)->addMonths(6);
$maintenance>to_date=$date->toDatestring();
$maintenance->save();
}