Я новичок в graphql, и я никогда не использовал отдых или другой язык, подобный этому.
Я могу просто получить фиксированное значение с моим уровнем сейчас.
У меня есть файл схемы, как следовать
demo.schema
schema {
query: Query
}
type Query {
id(id: Int): sub
}
type sub{
name: String
age: Int
}
вот demo.php:
declare(strict_types=1);
require_once 'vendor/autoload.php';
$typedef = file_get_contents('demo.graphql');
$rootValue = include 'rootvalue.php';
use \GraphQL\GraphQL;
use \GraphQL\Utils\BuildSchema;
// build schema and get query string
$schema = BuildSchema::build($typedef);
$param = file_get_contents("php://input");
$param = json_decode($param, true);
$param = $param['query'];
// get result and print it
$r = GraphQL::executeQuery($schema, $param, $rootValue)->toArray();
print_r(json_encode($r));
вот rootvalue.php
interface Root
{
public function reslove($root, $args, $context);
}
class age implements Root
{
public function reslove($root, $args, $context)
{
return 30;
}
}
class name implements Root
{
public function reslove($root, $args, $context)
{
return 'Miami';
}
}
return [
'id' => function($root, $args){
return $root;
},
'age' => function($root, $args, $context) {
$new = new age();
return $new->reslove($root, $args, $context);
},
'name' => function($root, $args, $context) {
$new = new name();
return $new->reslove($root, $args, $context);
},
];
Теперь я MySQL таблицы БД с именем user
, она имеет id
, name
, age
поля
как я могу получить результат, как user.id=1
Теперь я могу просто вернуть значение, как «30», «Майами».
Но теперь мне нужно получить данные по базе данных, так что это будет такой запрос из клиентского браузера
query{
id(id: 0){
name
age
}
}
я знаю, что кошка получает значение arg id в rootvalue.php
'id'=>function($root, $args){
$args['id'] // it will be get a value '1'
return $root;
},
но это мой предел, что я могу сделать. Я не могу получить идентификатор в другом месте, как это сделать?
PS:
Я знаю, как получить данные из базы данных, просто не знаю времени для извлечения базы данных и как передать эти данные в подобъект
Задача ещё не решена.
Других решений пока нет …