Laravel查询生成器whereJson包含错误

时间:2018-10-29 09:55:15

标签: laravel postgresql

我遇到了以下问题。

当我尝试使用来自laravel查询生成器的新功能whereJsonContains时,出现以下错误:

SQLSTATE[42703]: Undefined column: 7 ERROR: column "json_contains" does not exist LINE 1: select * from "users" where "json_contains" = $1 ^ (SQL: select * from "users" where "json_contains" = 'test')

使用以下行

$result =DB::table('users')
                ->whereJsonContains('public_data->vakgebieden', 'schoonmaak')
                ->get();

这是存储在public_data列中的jsonb中的数据。

{"vakgebieden": ["administratie", "onderwijs", "schoonmaak", "overheid", "industrie"]}

知道这是怎么引起的吗?

感谢

1 个答案:

答案 0 :(得分:0)

您使用的是哪个laravel版本以及您使用的是哪个数据库?

考虑一下: Laravel还支持在支持JSON列类型的数据库上查询JSON列类型。当前,这包括MySQL 5.7,PostgreSQL,SQL Server 2016和SQLite 3.9.0(带有JSON1扩展名)。要查询JSON列,请使用->运算符:

https://laravel.com/docs/5.7/queries#json-where-clauses