Laravel обновить модель с другой моделью - PullRequest
0 голосов
/ 13 января 2020

Я хочу обновить одну модель в базе данных со всеми полями, кроме идентификатора из другой модели.

Например, у меня есть две модели

Model1: {
    "id":1,
    "name":"Name1",
    "address":"Adress1",
    "phone":"1234567"
}

Model2: {
    "id":null,
    "name":"Name2",
    "address":null,
    "phone":"777777"
}

Как обновить модель1 со значениями модели2, поэтому что model1 будет иметь эти значения (все значения из model2, кроме id)

{
    "id":1,
    "name":"Name2",
    "address":null,
    "phone":"777777"
}

PS метод fill () игнорирует нулевые значения, forceFill () использует нулевые значения, но также и другие поля из массива, например, приписанные поля.

1 Ответ

1 голос
/ 13 января 2020

Используйте attributesToArray() и fill(). Свойства должны быть заполнены.

$properties = array_only($model1->attributesToArray(), ['name', 'address', 'phone']);

$model2->fill($properties);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...