首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SilverStripe GraphQL -语法错误

SilverStripe GraphQL -语法错误
EN

Stack Overflow用户
提问于 2018-02-13 00:48:15
回答 2查看 623关注 0票数 2

我试图在模式中构建一个基本的DataObject,但是我的查询抛出了以下错误:

http://localhost:8080/graphql

代码语言:javascript
代码运行次数:0
运行
复制
{
  "data": null,
  "errors": [
    {
      "message": "Syntax Error GraphQL request (1:1) Unexpected <EOF>\n\n1: \n   ^\n",
      "locations": [
        {
          "line": 1,
          "column": 1
        }
      ]
    }
  ]
}

还有,http://localhost:8080/graphql/?query={readQuickPossessions{ID+Title+Address+SquareFeet}}:

代码语言:javascript
代码运行次数:0
运行
复制
{
  "data": null,
  "errors": [
    {
      "message": "Syntax Error GraphQL request (1:25) Cannot parse the unexpected character \"+\".\n\n1: {readQuickPossessions{ID+Title+Address+SquareFeet}}\n                           ^\n",
      "locations": [
        {
          "line": 1,
          "column": 25
        }
      ]
    }
  ]
}

下面是DataObject:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
namespace Trigger\HomeBuilderSite\DataObjects;

use SilverStripe\ORM\DataObject;
use SilverStripe\GraphQL\Scaffolding\Interfaces\ScaffoldingProvider;
use SilverStripe\GraphQL\Scaffolding\Scaffolders\SchemaScaffolder;

class QuickPossession extends DataObject implements ScaffoldingProvider {
  private static $table_name = 'QuickPossession';

  private static $db = [
    'Title' => 'Varchar(255)',
    'Address' => 'Varchar(255)',
    'SquareFeet' => 'Int',
  ];

  private static $has_one = [];

  public function provideGraphQLScaffolding(SchemaScaffolder $scaffolder) {
    $scaffolder
      ->type(QuickPossession::class)
        ->addFields([
          'ID', 
          'Title',
          'Address', 
          'SquareFeet'
        ])
        ->operation(SchemaScaffolder::READ)
          ->end()
        ->operation(SchemaScaffolder::UPDATE)
          ->end()
        ->end();
    return $scaffolder;
  }
}

在mysite.yml中:

代码语言:javascript
代码运行次数:0
运行
复制
SilverStripe\GraphQL\Controller:
  schema:
    scaffolding_providers:
      - Trigger\HomeBuilderSite\DataObjects\QuickPossession

对我错过了什么有什么见解吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-13 04:53:58

我已经回复了罚单。问题似乎是无效的查询。默认情况下,读取操作具有分页。

代码语言:javascript
代码运行次数:0
运行
复制
query {
  readQuickPosessions {
    edges {
       node {
         ID
         Title
       }
    }
    pageInfo {
       hasNextPage
    }
}

或者,您可以在操作节点上使用->setUsePagination(false)关闭分页。

您也可以使用silverstripe graphql devtools对其进行调试。

票数 3
EN

Stack Overflow用户

发布于 2018-02-13 01:29:47

silverstripe-graphql生成的查询似乎不正确:

代码语言:javascript
代码运行次数:0
运行
复制
{readQuickPossessions{ID+Title+Address+SquareFeet}}

没有+ syntax in GraphQL queries

我建议尝试使用the YAML method to scaffold an object,看看是否有不同之处,并且可能会有一个更新来修复这个问题。

如果这不起作用,并且您已经检查了所有语法,那么您肯定应该使用report an issue

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48751480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档