[单个查询中多个字段的过滤器查询

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

我的安装程序是Symfony 5,其最新API平台版本在PHP 7.3上运行。因此,我希望能够同时查询名称和用户名(甚至是电子邮件)。我需要编写自定义解析器吗?

这是我到目前为止尝试过的,但是会导致WHERE名称= $ name和用户名= $ name。

query SearchUsers ($name: String!) {
  users(name: $name, username: $name) {
    edges {
       cursor
       node {
         id
         username
         email
         avatar
       }
     }
  }
}

我的实体:

/**
 * @ApiResource
 * @ApiFilter(SearchFilter::class, properties={
 *   "name": "ipartial",
 *   "username": "ipartial",
 *   "email": "ipartial",
 * })
 *
 * @ORM\Table(name="users")
 * @ORM\Entity(repositoryClass="Domain\Repository\UserRepository")
 * @ORM\HasLifecycleCallbacks()
 */
class User
{
  private $name;
  private $username;
  private $email;
  // ... code omitted ...
}
php symfony graphql api-platform.com
1个回答
0
投票

[API平台中默认不处理搜索过滤器中的OR条件,您需要使用自定义过滤器来执行此操作(https://api-platform.com/docs/core/filters/#creating-custom-filters)。

另请参见:https://github.com/api-platform/core/issues/2400

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