Laravel запрос на обновление (добавление значения к существующему значению) - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь обновить запись, используя Laravel.

Я прошел через множество вопросов StackOverflow, чтобы проверить, был ли уже задан этот вопрос.

mysql query: UPDATE students SET total_marks = total_marks + 80 WHERE id = 1

Я должен перевести этот mysql запрос в Laravel конструктор запросов, но пока не могу найти решение.

Вместо того, чтобы получить раннее значение из БД перед обновлением, Можем ли мы обновить таблицу одним запросом на обновление, используя Laravel Query Builder.

2 Способ запроса:

$student_marks = Students::select('total_marks')->where('id','=',1);
$current_mark = $student_marks['total_marks']+80;

$update_student_marks = Students::where('id','=',1)->update('total_marks','=',$current_mark);

Как обновить запись, подобную этой, с помощью одного построителя запросов в Laravel .

Ответы [ 3 ]

2 голосов
/ 05 февраля 2020

Для этого вы можете использовать функцию сохранения.

$student_marks = Students::select('total_marks')->where('id','=',1);
$student_marks->total_marks += 80; //or $student_marks->total_marks = $student_marks->total_marks + 80;
$student_marks->save();
2 голосов
/ 05 февраля 2020

Я думаю, вам нужно внести некоторые коррективы в ваш запрос.

Во-первых, вам нужно правильно выбрать студента, а затем использовать Eloquent для вызова метода сохранения для него после установки свойства в правильное значение. Я предполагаю, что вы находитесь на Laravel 6.

$student_marks = Students::find($id);
$student_marks->total_marks += 80;
$student_marks->save();

Пожалуйста, посмотрите на Laravel документы:

https://laravel.com/docs/6.x/eloquent

Чтение занимает некоторое время, но оно того стоит. Вы узнаете, как обращаться с eloquent и улучшать свой код, используя самые подходящие методы.

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

Передать данные обновления в виде массива

Попробуйте сделать это

$update = array('total_marks'=>$current_mark);
$update_student_marks = Students::where('id','=',1)->update($update);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...