[英]Laravel update json column in postgresql
在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['emailConfirmed'] = Carbon::now()->timestamp;
$user->userLife->activities = $activities;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.