我尝试使用 Api 平台 SearchFilter 以及 roles
实体内的
jsonPostgreSQL 列
User.php
的精确值:
#[ApiFilter(SearchFilter::class, properties: ['roles' => 'exact']
#[ORM\Column(type: 'json')]
public ?array $roles = [];
执行查询时发生异常:SQLSTATE[42883]: 未定义函数:7 错误:运算符不存在:json = 未知 第 1 行:...3 || '%' AND u0_.date_of_birth = $4 AND u0_.roles = 5 美元订单...^ 提示:没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。
https://.../users&roles='["ROLE_ADMIN"]'
我遇到了同样的问题,就我而言,我使用
simple_array
解决了问题:
#[ORM\Column(type: 'simple_array')]
public ?array $roles = [];
重要,根据文档:
重要信息 仅当您确定值不能包含“,”时才使用此类型。
这与
roles
非常适合,但将 simple_array
与其他列一起使用时要小心。