Api 平台 属性 类型始终为 STRING
Api Platform property types are always STRING
尽管我在类型提示和 @var int
注释方面做出了努力,Api 平台对此 属性 的解释始终是 string
。
考虑这个 属性:
/**
* @var int $geonameId The ID of a Geonames.org city/place/town
*
* @ORM\Column(type="bigint", options={"unsigned": true}, nullable=true)
* @Assert\Type(type="int", message="Geoname id must be an integer")
*/
protected $geonameId;
public function getGeonameId(): ?int
{
return $this->geonameId;
}
public function setGeonameId(int $geonameId = null): self
{
$this->geonameId = $geonameId;
return $this;
}
我从 Api 平台得到以下架构:
geonameId string
nullable: true
The ID of a Geonames.org city/place/town
当我尝试提交 "geonameId": 123456
时,出现以下错误:
The type of the "geonameId" attribute for class <Entity> must be one of "string" ("int" given).
我知道 @ApiProperty
注释可以自定义属性等,但我不想在已经使用类型提示 and/or 时不得不为了接受整数而冗长地定义类型@var 注释。
有没有人认为我正在做的/期望的有什么不对?提前致谢...
看起来 Doctrine 将 BIGINT 映射为字符串。
参考:
https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/basic-mapping.html
bigint: Type that maps a database BIGINT to a PHP string.
尽管我在类型提示和 @var int
注释方面做出了努力,Api 平台对此 属性 的解释始终是 string
。
考虑这个 属性:
/**
* @var int $geonameId The ID of a Geonames.org city/place/town
*
* @ORM\Column(type="bigint", options={"unsigned": true}, nullable=true)
* @Assert\Type(type="int", message="Geoname id must be an integer")
*/
protected $geonameId;
public function getGeonameId(): ?int
{
return $this->geonameId;
}
public function setGeonameId(int $geonameId = null): self
{
$this->geonameId = $geonameId;
return $this;
}
我从 Api 平台得到以下架构:
geonameId string
nullable: true
The ID of a Geonames.org city/place/town
当我尝试提交 "geonameId": 123456
时,出现以下错误:
The type of the "geonameId" attribute for class <Entity> must be one of "string" ("int" given).
我知道 @ApiProperty
注释可以自定义属性等,但我不想在已经使用类型提示 and/or 时不得不为了接受整数而冗长地定义类型@var 注释。
有没有人认为我正在做的/期望的有什么不对?提前致谢...
看起来 Doctrine 将 BIGINT 映射为字符串。
参考: https://www.doctrine-project.org/projects/doctrine-orm/en/2.7/reference/basic-mapping.html
bigint: Type that maps a database BIGINT to a PHP string.