Laravel Ресурс добавляет локально измененные атрибуты - PullRequest
2 голосов
/ 24 апреля 2020

Я хотел бы вернуть Resource модели при добавлении локального изменения к некоторым атрибутам, которые уже существуют в модели (таким образом, что это не изменяет значения базы данных). Как правильно вызвать метод для достижения этой цели (потому что функция append неверна)?

// exists $model->currency
// Version: Laravel 7.x
// ModelResoruce is a Illuminate/Http/JsonResource

$tempCurrency = $this->findCurrecy($model->currency);

return ok(ModelResource::make($model)->append(['currency' => $tempCurrency, /* multiple dynamic changes*/]);

// updated: more real scenario:
// $localized has MANY dynamic keys that exist in model but MAYBE different values

$localized= ['currency' => 'x', 'name' => 'y',]; 


ok(ModelResource::make($model)->append($localized);

// I want: user will see temp but data is not modified
// What happens: append does not change currency's value

1 Ответ

1 голос
/ 24 апреля 2020

Это не изменит базу данных:

$tempCurrency = $this->findCurrecy($model->currency);
$model->currency = $tempCurrency;

Пока вы не вызовете save() на $model, база данных не будет затронута.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...