Как я могу обнаружить изменения определенного атрибута JSON в Laravel с помощью wasChanged() или других методов?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как я могу обнаружить изменения определенного атрибута JSON в Laravel с помощью wasChanged() или других методов?

Сообщение Anonymous »

Я работаю над проектом Laravel, где мне нужно определить, был ли изменен определенный вложенный атрибут в столбце JSON после сохранения модели. Я попробовал использовать метод WasChanged Laravel вот так;

Код: Выделить всё

$company = Company::find(1);
$company->json_extra = ['last_comment' => 'Updated comment'];
$company->save();

if ($company->wasChanged('json_extra->last_comment')) {
dump('changed')
}
Однако, похоже, это работает не так, как ожидалось. Вместо этого он либо обнаруживает изменения неправильно, либо не обнаруживает их вообще.
Я подтвердил, что wasChanged работает с обычными атрибутами, но не с вложенными атрибутами JSON.

Я пытался использовать getOriginal('json_extra->last_comment') в качестве обходного пути, но это также не дает надежных результатов для путей JSON.
  • Предназначен ли wasChanged для работы с путями атрибутов JSON или это не поддерживается?
  • Есть ли в Laravel альтернативные методы обнаружения изменений в определенном атрибуте JSON, возможно, с использованием комбинации getOriginal или подобных методов?
  • Мне нужно нужно сравнить JSON вручную или есть встроенный способ справиться с этим?
Мои настройки:< /p>
Laravel 10.x
MySQL 8.x
Заранее благодарим за любую информацию!

Подробнее здесь: https://stackoverflow.com/questions/791 ... -waschange
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»