Laravel выберите из JSON, добавив двойные кавычки 2 раза - PullRequest
0 голосов
/ 02 октября 2018

Сравним этот запрос:

DB::table('registries')->where('metas->name', $this->registry_name)->select(['metas->date'])->first();

Возврат данных, подобных этому:

{#1463 ▼
  +"`metas`->'$."date"'": ""2017-01-02""
}

Из-за этой проблемы (2x двойные кавычки) существует проблема с пакетом DataTables, поскольку результат преобразован вУ JSON по-прежнему есть 4 двойные кавычки.

Если я удаляю select(['metas->date']), то все хорошо, тогда ...

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Для решения этой проблемы нам нужно выбрать столбец с оператором встроенного пути ->>, например:

DB::table('registries')->where('metas->name', $this->registry_name)->select([DB::raw('metas->>"$.date" AS date')])->first();
0 голосов
/ 02 октября 2018

Вы не можете этого сделать.

вам нужно что-то вроде

DB::table('registries')->where('metas->name', $this->registry_name)->select(['metas'])->first()->date;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...