我有一个由iso_code属性标识的学说实体类:
/**
* @ApiResource(
* graphql={
* "item_query",
* "collection_query"
* }
* )
*
* @ORM\Entity(repositoryClass="App\Repository\LanguageRepository")
* @ORM\HasLifecycleCallbacks
*/
class Language extends BaseEntity
{
/**
* @var string
* @ApiProperty(identifier=true)
*
* @ORM\Id()
* @ORM\Column(type="string", length=2, unique=true)
*/
private $iso_code;
public function getId(): string
{
return $this->iso_code;
}
public function getIsoCode(): string
{
return $this->iso_code;
}
}
当我尝试通过GET请求/api/v2/languages?pages=1
访问列表时,出现了"No identifiers defined for resource of type \"App\\Entity\\Language\""
错误。
当我尝试通过GET请求/api/v2/languages/en
访问项目时,我得到了Invalid identifier value or configuration
配置: -API平台v2.5.6 -PHP 7.4 -symfony 4.4
答案 0 :(得分:2)
通过在顶部设置标识符@ApiProperty(identifier=true) 解决了类似问题 获取函数
答案 1 :(得分:0)
将标识符的名称更改为$id
就可以了。
但是我不明白为什么无法使用$iso_code
答案 2 :(得分:0)
您必须添加
App\Entity\Language
properties:
id:
identifier: false
iso_code:
identifier: true