具有用户角色的 Api 平台搜索过滤器

问题描述 投票:0回答:1

我尝试使用 Api 平台 SearchFilter 以及 roles 实体内的

json
PostgreSQL 列
User.php
的精确值:

#[ApiFilter(SearchFilter::class, properties: ['roles' => 'exact']

#[ORM\Column(type: 'json')]
public ?array $roles = [];
  • 从前端写入 url 以避免此错误的正确格式是什么?

执行查询时发生异常:SQLSTATE[42883]: 未定义函数:7 错误:运算符不存在:json = 未知 第 1 行:...3 || '%' AND u0_.date_of_birth = $4 AND u0_.roles = 5 美元订单...^ 提示:没有运算符与给定名称和参数类型匹配。您可能需要添加显式类型转换。

  • 我尝试了很多方法,甚至对 url 参数进行编码,但对 json 没有任何效果,例如:
    https://.../users&roles='["ROLE_ADMIN"]'
postgresql symfony api-platform.com
1个回答
0
投票

我遇到了同样的问题,就我而言,我使用

simple_array
解决了问题:

#[ORM\Column(type: 'simple_array')]
public ?array $roles = [];

重要,根据文档:

重要信息 仅当您确定值不能包含“,”时才使用此类型。

这与

roles
非常适合,但将
simple_array
与其他列一起使用时要小心。

© www.soinside.com 2019 - 2024. All rights reserved.