Я пытался перенести мой старый API в GraphQl, и я пытаюсь загрузить его только один раз, но с маяком graphql я не могу найти правильный путь
моя модель
public function getMeta($name, $defaultValue = null)
{
if (!$this->relationLoaded('metas')) {
return $defaultValue;
}
return $this->metas->where('name', $name)->first()->value ?? $defaultValue;
}
ранее я Я использовал laravel jsonResources
'built_year' => $this->getMeta('built_year'),
'floors' => $this->getMeta('floors'),
'cabins' => $this->getMeta('cabins'),
. При использовании этого метода для таблицы метасов был сделан один запрос
, но теперь, используя graphql, он выполняет каждый запрос базы данных с каждым $this->getMeta
вызовом my схема
type Cruise{
built_year : GetMeta @field(resolver:"App\\GraphQL\\Types\\GetMetaTypes@get")
floors : GetMeta @field(resolver:"App\\GraphQL\\Types\\GetMetaTypes@get")
cabins : GetMeta @field(resolver:"App\\GraphQL\\Types\\GetMetaTypes@get")
}
type GetMeta{
value : String
}
Пользовательский тип
public function get($cruise,$next,$a,$b)
{
$cruise->load("metas");
return ['value' => $cruise->getMeta($b->fieldName) ];
}