@laravue
laravel

Как заполнить поля модели используя массив key=>val перед save?

есть такая задача - заменить штатную функцию
update(
[
$key1 =>$val1,
$key2 = $val2
]);


На свою, которая бы тоже принимала эти параметры, но внутри чтоб был код

$newModel = new ModelName;
foreach ( $data as $key=>$val) {
   $newModel-> $key = $val;     // вместо этой строчки нужно вставить правильную конструкцию. но как?
}
$newModel->save();


Я так понимаю Setter нужно делать на все поля модели, а есть ли другой способ реализации сеттеров без доп. кодинга?
  • Вопрос задан
  • 79 просмотров
Решения вопроса 1
PulpiRZVK
@PulpiRZVK
У класса Model есть методы заполнения свойств модели значениями из массива

- fill - с учетом ограничений guard/fillable
- forceFill - без учета этих ограничений

После заполнения надо делать save.

https://laravel.com/api/8.x/Illuminate/Database/El...

Ссылка на документацию для 8 версии, но вроде эти методы есть давно. Проверь для свой версии Лары.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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