#php #database #laravel
#php #База данных #laravel
Вопрос:
public function increment($id)
{
$this->model->where("id",'=', $id)->update(['rating'=> DB::raw('count 1')]);
}
Я получаю следующую ошибку:
SQLSTATE[42S22]: столбец не найден: 1054 неизвестных столбца «count» в «списке полей» (SQL: update
news
setrating
= count 1,updated_at
= 2019-04-13 08:12:51 гдеid
= 5)
Я также пробовал
->update(['rating'=>'count 1']);
Ответ №1:
Вы не сообщаете построителю запросов, в какой таблице вы выполняете запрос, поэтому DB::raw('count 1')
не имеет смысла.
Вы можете попробовать использовать метод eloquent increment следующим образом:
$this->model->where("id", $id)->increment('rating');
Спасибо @Tharaka удалил дополнительный вызов save() .
Комментарии:
1. хах, я пробовал это в прошлый раз, но допустил глупую ошибку, спасибо вам за это, это работает. Но в последней строке должно быть update() . Спасибо
2. и вам не нужно вызывать
save()
. он автоматически сохраняется в базе данных.