За последние 24 часа нас посетили 22566 программистов и 1016 роботов. Сейчас ищут 654 программиста ...

Проблема с DB::table()->where()->update() для JSON

Тема в разделе "Laravel", создана пользователем alexy74, 17 дек 2020.

Метки:
  1. alexy74

    alexy74 Новичок

    С нами с:
    17 дек 2020
    Сообщения:
    1
    Симпатии:
    0
    ДОбрый день. Laravel 7, MySQL 8.
    Поле result формата JSON.
    Вот такая строчка не обновляет столбец JSON ('result') :
    Код (Text):
    1.  $refer = DB::table('referendums')->where('id' , 1)->update(['result->first->second' => 11]);
    Если
    Код (Text):
    1. $refer = DB::table('referendums')->where('id' , 1)->update(['result->first' => 11]);
    то обновляет.
    Код (Text):
    1. $refer->fill(['result->->first->second' => 11]);
    2. $referendum->update();
    тоже работает.
    Т.е. проблема с многомерностью JSON и DB::update()
    В чем может быть причина??? ( в модели Referendum есть запись protected $guarded = [];)
    Я мог бы и последним способом, но вне надо обновлять JSON без загрузки модели.