使用api平台图形查询读取空间点类型



这是我的堆栈:

  • postgres 12
  • 带有api平台的GraphQL

我有一个实体,它的坐标属性基于包longitude-one/doctrine-spatial中的point Type,我想通过graphQL请求访问这个属性,但是graphQL忽略了这个属性,因为它不识别类型…我怎么能使它返回我的属性,我尝试通过一个customType,但我不想失去与几何查看器postgres的好处…有人知道怎么处理吗?还是用了不同的类型?

我已经找到了一个解决方案,当你使用graphQL与api平台,当你通过symfony cli创建一个新的属性到实体,getter和setter是自动创建的。

例如:

如果我创建一个名为NewEntity的新实体。我会有一个setNewEntity方法和getNewEntity方法,它们基于类型实体。

get方法很重要,因为它将被api平台用于返回图形响应中的数据。在这里,你可以按你想要的方式格式化数据。

在我的几何例子中,我将有:

#[ORMColumn(type: "point")]
private $myCoordinates;
public function getMyCoordinates(): ?array
{
if ($this->myCoordinates) {
return [
"longitude" => $this->myCoordinates->getLongitude(),
"latitude" => $this->myCoordinates->getLatitude()
];
} else {
return null;
}
}

最新更新