Size: a a a

2021 June 12

y

yu2ry in Laravel Pro
$model->refresh();
источник

y

yu2ry in Laravel Pro
после save
источник

y

yu2ry in Laravel Pro
$model
->fill($request-only($model->getFillable()))->save();
event(new MenuUpdated($model->refresh()));
источник

В

Виталий in Laravel Pro
спасибо за вариант, но не работает.
не работает ничего из этого:
$model->getOriginal()
$model->getRawOriginal()
$model->getChanges()
$model->getDirty()
$model->refresh()

event должен быть после save иначе это некорретно кидать событие что сохранилось до save
источник

y

yu2ry in Laravel Pro
$model->getOriginal()
$model->getRawOriginal()
$model->getChanges()
$model->getDirty()
это методы отвечают за оригинальные данные
источник

y

yu2ry in Laravel Pro
а ты уже сохранил
источник

y

yu2ry in Laravel Pro
у тебя и будет всегда все старое
источник

В

Виталий in Laravel Pro
когда произошел $model->save() похоже оригинального состояния уже нет
источник

y

yu2ry in Laravel Pro
напутал думал это твои методы)
источник

y

yu2ry in Laravel Pro
refresh работает, а как ты к моделе в обработчике обращаешься?
источник

В

Виталий in Laravel Pro
$event->menu
источник

y

yu2ry in Laravel Pro
просто если смотреть исходник метода рефресш
источник

y

yu2ry in Laravel Pro
if (! $this->exists) {
   return $this;
}

$this->load(array_keys($this->relations));

$this->setRawAttributes(static::
findOrFail($this->getKey())->attributes);

return $this;
источник

В

Виталий in Laravel Pro
источник

y

yu2ry in Laravel Pro
он должен у тебя работать, значит деалешь что - то не так
источник

В

Виталий in Laravel Pro
wasChanged кстати тоже не работает
источник

В

Виталий in Laravel Pro
все это работает похоже пока небыло сохранения в базу.
как только произошел save оригинального состояния не получить.
вижу вариант записывать сосятоние модели до сохранения в отдельную переменную и далее передавать другим параметром, но выглядить как костыль
источник

y

yu2ry in Laravel Pro
для этого есть метод типа getOriginal чтобы получить после сохранения старые данные как я понял
источник

В

Виталий in Laravel Pro
getOriginal хранит состояние до save уже проверял. кроме кеширования в переменную модели до save других вриантов не вижу
источник

В

Виталий in Laravel Pro
как склонировать модель? нужен не replicate а аналог _.clone() в lodash, т.е. копия модели.
$original = $model перезаписывается по ссылке.
источник