Задать вопрос
@DenKG

Как обновлять данные в БД после нажатия на кнопку, Laravel?

Есть у меня две таблицы: Purses и Transactions. В таблице Purses есть поле purse_balance. После выполнения транзакции оно должно обновляться, т.е. к предыдущему значению что-то прибавляется. Я написал код, но толку от него мало, потому что вылетают ошибки:
public function trans(Request $request){

   $transactions = new Transaction;

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

   $purses = new Purse;
   $purses->purse_name = $request->trans_pay_purse_id;
   $purses->purse_balance = $this->sum($request);
   $purses->save();

    return view('home');
}
  public function sum( Request $request){
    $result = '';
    $result= $request->trans_pay_sum;
    return $result;
  }

Теперь ошибка:
QueryException in Connection.php line 769:
SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3774817312069704' for key 'purse_name' (SQL: insert into `purses` (`purse_name`, `purse_balance`, `updated_at`, `created_at`) values (3774817312069704, 1000, 2016-12-01 04:00:20, 2016-12-01 04:00:20))
  • Вопрос задан
  • 339 просмотров
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
purse_name должно быть уникальным, поэтому и ошибка.
Ответ написан
Fett
@Fett
Разработчик
Duplicate entry '3774817312069704'
Была такая же проблема, тогда толи ключ вышел за диапазон, толи место на диске кончилось, уже не помню, но таблица было достаточно большая по размеру. Помогла очистка таблицы.
Ответ написан
Ваш ответ на вопрос

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

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