Учитывая следующие модели:
Car Model
- parts: hasMany(Parts::class)
Part Model
- car: belongsTo(Car::class)
Запуск
Car::find(1)->parts()->saveMany(Part::hydrate($request->parts));
правильно возвращает список деталей, у 3 есть идентификатор, у одной нет, так что это 3 модели, которые нужно обновить и одну нужно вставить.
Однако, глядя на мою базу данных, ни одна строка не вставлена, и выдача dd(Car::find(1)->parts)
возвращает пустой массив. createMany
работает, но это не обновляет модели с id
- вместо этого создаются новые.
Из документации ,
Если вам нужно сохранить несколько связанных моделей, вы можете использовать метод saveMany
...
Разница между save
и create
в том, что save
принимает полный экземпляр модели Eloquent, а create принимает простой PHP array
Так в чем причина createMany
работает, а saveMany
нет?