Количество в запросе обновления не работает в Laravel

#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 set rating = 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() . он автоматически сохраняется в базе данных.