при изменении данных нужно использовать Model->getChanges(), чтобы передать информацию об изменениях в другое место. Но getChanges присылает инфу в строках, а не в json. Кто-нибудь сталкивался?
Для обновления модели в другом месте (если нету возможности прокинуть ее) используют методы $model->refresh() или $model->fresh() в зависимости от того нужно ли обновлять ещё и связи к этой модели.
Ему нужно получить именно изменённые атрибуты и их значения. а не всю модель
protected $casts = [ 'options' => AsArrayObject::class, ]; ты таким образом каст настроил?
Нет, стоит просто ‘Array‘. Пробовал все касты - разницы нет. Чтобы действительно получать массив, нужно только брать $model->attributesToArray(), и руками сравнивать с $model->getOriginal(). В этом и есть проблема. Нужно мапить, так как внутри могут быть ещё массивы, а diff не работает глубоко. Поэтому сейчас мучаюсь с тем, чтобы грамотно их сравнить во всех вложениях. Поставил пакет ArrayDiffMultidimensional, но че-то с моими данными фигово работает
Обсуждают сегодня