Laravel обновляет колонку JSON в postgresql - PullRequest
0 голосов
/ 28 мая 2019

В 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».

Итак, как правильно сделать, чтобы просто добавить новое значение в столбец, не удаляя предыдущий?Спасибо.

1 Ответ

0 голосов
/ 28 мая 2019

Вы должны добавить его как новый элемент через другую переменную:

$activities = $user->userLife->activities;

$activities['emailConfirmed'] = Carbon::now()->timestamp;

$user->userLife->activities = $activities;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...