Laravel Query Builder присоединяется к столбцу данных json - PullRequest
0 голосов
/ 17 марта 2019

В моей базе данных у меня есть таблица уведомлений, в которой есть столбец данных, содержащий строку JSON, подобную этой:

{"sender_id":2,"sender_name":"John Doe","message":"Hello world!"}

Что мне нужно, так это присоединиться к таблице пользователей на users.id = notifications.data.sender_id, но я не знаю, как и возможно ли это вообще. Не удалось найти какую-либо информацию относительно этого типа запроса.

Ждем ваших решений. Спасибо!

1 Ответ

0 голосов
/ 17 марта 2019

Вы можете сделать небольшое хакерское решение, которое выглядит следующим образом:

$id = 123;
YourModel::where('json_data_column', 'like', '%"sender_id":' . $id . ',%');

Вы в основном выполняете поиск строк в JSON.Однако в MySQL есть также тип столбца JSON, который позволяет лучше поддерживать поиск JSON.Затем вы можете сделать:

$id = 123;
YourModel::where('json_data_column->sender_id', $id);
...