【发布时间】:2020-06-13 04:57:50
【问题描述】:
我必须从月份开始计算到期日期。请指导我。虽然保存数据到期日期工作正常。但是我不明白如何更新它。
用于保存数据的控制器代码
public function pay_success(Request $request){
$input = $request->all();
date_default_timezone_set('asia/calcutta');
$input['months'] = $request->months;
$expiry_date = Carbon::now()->addMonths($input['months']);
$input['expiry_date'] = $expiry_date;
$input['password'] = bcrypt($input['password']);
$user = User::create($input);
//Send Email
$email = $input['email'];
$messageData = ['email' =>$input['email'],'name' =>$input['name'],'package' =>$input['package'],'months' =>$input['months'],'amount' =>$input['amount'],'expiry_date' =>$input['expiry_date']];
Mail::send('emails.mail',$messageData,function($message) use($email){
$message->to($email)->subject('Registration with AddSpy');
});
$arr = array('msg' => 'Payment successful.', 'status' => true);
return Response()->json($arr);
}
我的更新代码是
public function update(Request $request) {
date_default_timezone_set('asia/calcutta');
$months = $request->months;
$expiry_date = Carbon::now()->addMonths($months);
$request['expiry_date'] = $expiry_date;
$data = ['id'=>$request->id, 'name'=>$request->name, 'phone'=>$request->phone, 'country'=>$request->country, 'state'=>$request->state,
'purpose'=>$request->purpose, 'package'=>$request->package, 'months'=>'$months', 'quantity'=>$request->quantity, 'amount'=>$request->amount, 'expiry_date'=>'$expiry_date'];
DB::table('users')->where('id',$request->id)->update($data);
return response()->json($data);
}
任何人请给我一个答案。我对代码进行了更改,但它给出了以下消息 "message": "SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect date value: '$expiry_date' for column addspy.users.expiry_date在第 1 行(SQL:更新 users 设置 id = 47,name = Ayush,phone = 6393611129,country = 印度,state = UP,purpose = 父母,@987653 = 基本,months = $months,quantity = 1,amount = 4000,expiry_date = $expiry_date 其中id = 47)",
“异常”:“Illuminate\Database\QueryException”,
提前致谢
【问题讨论】:
-
你想更新状态还是更新expiry_date
-
我想从月数开始更新到期时间