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

Есть ли возможность в Laravel обновить записи модели из массива одной строкой?

Допустим есть массив объектов с id и date
$arr=[
(object)['id'=>1,'date'=>'2024-12-11'],
(object)['id'=>2,'date'=>'2024-03-28'],
(object)['id'=>3,'date'=>'2024-04-01']];
//...etc

Можно обновлять в цикле foreach делая find(id), меняя поле date и сохранять модель save()
А есть ли встроенная возможность это делать в Eloquent? Знаю про whereIn, но это работает если есть 1 значение на все записи. И имеет ли вообще это смысл в плане оптимизации или есть может другой подход сделать подобный запрос лучше?
  • Вопрос задан
  • 137 просмотров
Подписаться 1 Простой 6 комментариев
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
Если не принципиален вызов событий и всякие $casts, и есть гарантия, что все данные существуют (или это не принципиально), то можно воспользоваться upsert.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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