Как установить значение поля jsonb с ключом в точечной нотации?

#laravel

#laravel

Вопрос:

Когда я делаю это:

 $user = User::find(123);
IlluminateSupportArr::set($user, 'foo.bar', 100);
 

Я получаю:

Примечание PHP: косвенная модификация перегруженного элемента User не влияет на /Users/me/my-project/vendor/laravel/framework/src/Illuminate/Collections/Arr.php в строке 575

 [
  "bar" => 100,
]
 

И значение не изменяется $user .

Комментарии:

1. Не уверен, что вы пытаетесь сделать. Но если предположить, что json уже является объектом, вы пробовали $user-> foo-> bar = 100?

Ответ №1:

Используйте этот код

 $user = User::find(123);
$user->update([
    'foo->bar' => 150
]);