Graphql:用户错误:预期可迭代,但没有为字段 XXX 找到一个

Posted

技术标签:

【中文标题】Graphql:用户错误:预期可迭代,但没有为字段 XXX 找到一个【英文标题】:Graphql: User Error: expected iterable, but did not find one for field XXX 【发布时间】:2021-09-14 02:39:53 【问题描述】:

这是电影架构:

type Book 
    id: ID!
    title: String
    author: [Author] @belongsTo(relation: "author")

这就是我如何关联书籍和作者

public function author()

    return $this->belongsTo('App\Models\Author', 'id', 'book_id');

这是作者的架构

type Author 
    id: ID!
    title: String!
    book_id: Int!

这是我对 Book 的查询:

extend type Query 
    bookCriteria(
        orderBy: _ @orderBy
        where: _ @whereConditions
    ): [Book!]! @paginate

我是这样查询的:


  bookCriteria
  (
    first: 1, page: 1
  )
  
    data
    
      id
      uuid
      author
      
        id
        title
      
    
  

最后,这是我得到的错误消息:

“用户错误:预期可迭代,但没有为字段 Book.author 找到一个。”

如果我使用 hasMany 而不是 belongsTo,它可以正常工作。

请告诉我这里出了什么问题?

【问题讨论】:

【参考方案1】:

你的类型应该是

type Book 
    id: ID!
    title: String
    author: Author @belongsTo(relation: "author")

【讨论】:

以上是关于Graphql:用户错误:预期可迭代,但没有为字段 XXX 找到一个的主要内容,如果未能解决你的问题,请参考以下文章

在 GraphQL 中不能有带有嵌套字段的输入类型。错误:预期类型是 GraphQLInputType,但不是

GraphQL 期望 Iterable,但没有为字段 xxx.yyy 找到一个

GraphQL 期望 Iterable,但没有为字段 xxx.yyy 找到一个

React Apollo graphql HOC 加载为假但没有数据字段

DOcplexException:预期可迭代错误

用于可迭代对象的 Java GraphQL 解析器:休眠异常