Как автоматически обновить дату окончания месяца от laravel? - PullRequest
0 голосов
/ 29 февраля 2020

Я должен обновить дату истечения срока, считая с месяца. Пожалуйста, ведите меня. При сохранении данных срок годности работает нормально. Но я не понимаю, как его обновить.

Мой код контроллера для сохранения данных

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]: неверный формат даты и времени: 1292 Неверное значение даты: '$ expiry_date' для столбца addspy. users. expiry_date в строке 1 (SQL: обновление users установлено id = 47, name = Аю sh, phone = 6393611129, country = Индия, state = ВВЕРХ, purpose = parent, package = basi c, months = $ месяцев, quantity = 1, amount = 4000, expiry_date = $ expiry_date где id = 47) "," исключение ":" Подсветка \ База данных \ QueryException ",

Заранее спасибо

enter image description here

1 Ответ

0 голосов
/ 29 февраля 2020

Вы отправляете строки в базу данных ('$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,
];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...