@vladislav997

Как обновить только те значения, которые пришли?

Подскажите как в laravel обновить только те значения, которые пришли?

Есть к примеру модель с такими полями:
title | description | body

Я знаю что обновить можно так:
$post = Post::find($id);
$post->title = '...';
$post->description = '...';
$post->body = '...';

$post->save();

Но прикол в том, что если мы пришлём только title, то остальные будут null.
Если бы я делал это с вьюхи, я бы в форме хранил все значения в value инпутов, и присылал бы их все, но проблема в том, что это апи, и как сделать так, чтобы изменялось значение только того поля, которое пришло? строить ёлочку из if-else не хотелось бы
  • Вопрос задан
  • 233 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега Laravel
$post->fill($request->validated())->save()
Разумеется, нужно либо добавить поля в fillable, либо использовать forceFill.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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