我想在symfony中使用带有Overblog graphql的注释。当我通过查询创建提供程序时,出现关于架构的错误。
错误:应该声明至少一个模式
我不知道如何在配置文件中配置架构。通常我使用yaml作为类型。
当我使用默认值时,它指向yaml配置文件。我不知道如何在php中使用注释来更改它。当我从定义中删除架构时,会出现相同的错误。
要在Overblog graphql包中使用批注,我需要更改什么?
/ config / packages / graphql.yaml
s using CoreQuery what
/ src / Graphql / Types / SensorProviders.php
overblog_graphql:
definitions:
schema:
default:
query: CoreQuery
# mutation: CoreMutation
show_debug_info: '%kernel.debug%'
mappings:
auto_discover: false
types:
- type: annotation
dir: "%kernel.project_dir%/src/GraphQL"
suffix: ~
/ src / Graphql / Types / Sensor.php
namespace App\Graphql\Types;
use Overblog\GraphQLBundle\Annotation as GQL;
/**
* @GQL\Provider
*/
class SensorProviders {
/**
* @GQL\Query(type="[Sensor]", name="sensors")
*/
public function getSensors() {
return [];
}
}
我有同样的问题,但是经过数小时的调试,我发现了:
namespace App\Graphql\Types;
use Overblog\GraphQLBundle\Annotation as GQL;
/**
* @GQL\Type
*/
class Sensor
{
/**
* @GQL\Field(type="Integer!")
*/
public $id;
}
,您需要以下附加文件:graphql.yaml
:
/src/Graphql/Types/CoreQuery.php
基本上,您需要定义一个空的根类型,所有带注释的查询都会自动添加。突变也一样。