【问题标题】:How to Automatically update expiry date from month in laravel?如何在laravel中自动更新月份的到期日期?
【发布时间】: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
  • 我想从月数开始更新到期时间

标签: ajax laravel


【解决方案1】:

您正在向数据库发送字符串 ('$months' & '$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,
];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-05
    • 1970-01-01
    相关资源
    最近更新 更多