在postgresql数据库中,我有一个列类型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”。
那么,如何正确地在列中添加新值而不删除前一个值呢? 谢谢。
答案 0 :(得分:0)
您应该通过另一个变量将其添加为新元素:
$activities = $user->userLife->activities;
$activities['emailConfirmed'] = Carbon::now()->timestamp;
$user->userLife->activities = $activities;