Eloquent - вложенное значение запроса SQLite в столбце json - PullRequest
0 голосов
/ 21 апреля 2020

У меня проблема с моей средой тестирования при использовании столбцов json.

В своих тестах я использую базу данных SQLite и обнаружил, что мои запросы не выполняются при доступе к столбцам json. Я не знаю, как с этим справиться. Я использую последнюю версию Homestead.

Моя проблема:

У меня есть модель пользователя с колонкой settings json, где я храню логическое значение с именем mailing , поэтому, если я хочу опрашивать всех пользователей с mailing true, я могу написать:

User::where('settings->mailing', true)->count();

И затем, это выдает мне ошибку:

SQLSTATE[HY000]: General error: 1 no such column: true (SQL: select count(*) as aggregate from "users" where json_extract("settings", '$."mailing"') = true)

В моем локальном окружении использование MySQL нормально работает, поэтому есть ли проблема с запросами к столбцам SQLite и json?

Другой совет: При использовании whereNull() или whereNotNull() тоже отлично работает в обеих средах.

Спасибо!

1 Ответ

0 голосов
/ 21 апреля 2020

Вы должны использовать это как строку:

User::where('settings->mailing', 'true')->count();

да, есть некоторые ограничения на sqlLite посмотрите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...