Почему не отображается original?

.... Код с присвоением новых данных в контроллере
$discount->save();
event(new UpdatedEvent($discount));

Ивент:

public $discount;
public function __construct($discount)
{
    $this->discount = $discount;
}

Обработчик:
public function handle(UpdatedEvent $event)
    {
        dd($event);
        $changes = $event->discount->getChanges();
        unset($changes['updated_at']);
    }

В getChanges поля вижу, но там новые значения, хочу получить исходные, до сохранения. Как я понимаю, для этого служит метод getOriginal, но в нем уже все атрибуты новые. Что я делаю не так?

Это нужно, чтобы сделать массив вида было => стало.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
JhaoDa
@JhaoDa
LaravelRUS Team
А почему они должны там остаться после сохранения? Если бы ты не поленился открыть код метода save(), то увидел бы там в самом конце вызов $this->finishSave(), в котором бы увидел вызов $this->syncOriginal(), который и заменяет старые значения на новые.

Используй события моделей либо передавай старые значения в событие явно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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