【发布时间】:2019-10-14 03:07:09
【问题描述】:
在 postgresql db 中,我有一个列类型 json,称之为“活动”。我想在那里添加新的(键-> 值)对。不删除现有数据。
此时我的代码如下所示:
$user = User::with('userLife')->where(['id' =>$id])->first();
$user->userLife->confirmation_token = null;
$user->userLife->activities = ['emailConfirmed' => Carbon::now()->timestamp];
$user->email_confirmed = true;
$user->push();
在我的模型中我添加了:
protected $casts = [
'activities' => 'array',
];
但是当我使用此代码时,列中的所有其他数据都将被删除,并且只有“emailConfirmed”出现在那里。
那么如何正确地在列中添加新值而不删除以前的值? 谢谢。
【问题讨论】:
-
你可以这样做: $activities = $user->userLife->activities; $activities['new_key'] = 'new_value'; $user->userLife->activities = $activities; $user->save();
标签: json laravel postgresql