簡體   English   中英

Laravel在postgresql中更新json列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM