@DenKG

Почему вылетает Call to a member function decrement() on null?

Нужно мне от имеющейся суммы в БД отнимать вводимую в форме.
Вот мой контроллер:
$transactions = new Transaction;

   $transactions->trans_pay_sum = $request->trans_pay_sum;
   $transactions->trans_pay_appoint = $request->trans_pay_appoint;
   $transactions->trans_pay_purse_name = $request->trans_pay_purse_name;
   $transactions->trans_pay_purse_client_id = Auth::id();


public function payment(Request $request){
     $purse = Purse::where('purse_name', $request->trans_pay_purse_name)->first();
     $purse->decrement('purse_balance',  $request->trans_pay_sum);
     $purse->save();
     return view('home');
  }


Хотя инкремент с таким же кодом, как в payment работает великолепно. В чем проблема?
  • Вопрос задан
  • 250 просмотров
Решения вопроса 1
@Result007
P|-|P
Вероятно запрос на поиск по имени вернул null.

Чтобы игнорировать ошибку или как то ее обрабатывать, лучше проверяйте:

$purse = Purse::where('purse_name', $request->trans_pay_purse_name)->first();
if ($purse) {
    $purse->decrement('purse_balance',  $request->trans_pay_sum);
    $purse->save();
} else {
    return redirect()->back()->withInput()->with('error', 'Кошелек не найден!');
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы