我想做的是:
所以我定义了:
* @ApiResource(itemOperations={
* "get",
* "activate_account"={
* "method"="get",
* "path"="/account/activate/{confirmationToken}",
* "controller"=UserActivate::class
* }
* })
*/
在我的User
实体类中,有UserActivate
控制器和UserActivateHandler
控制器调用的UserActivate
。
我已将ApiProperty
identifier
的ID设置为false
,并将confirmationToken
的ID设置为true
。
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
* @ApiProperty(identifier=false)
*
*/
private $id;
/**
*
* @ORM\Column(type="string", nullable=true)
* @ApiProperty(identifier=true)
*/
protected $confirmationToken;
但是API平台仍然需要ID,并且似乎看不到confirmationToken
参数。
基本上我的问题是,在这种情况下,如何通过confirmationToken
来检索对象?
答案 0 :(得分:1)
我遇到了同样的问题,即通过与标识为标识符的属性不同的属性来获取实体;您在属性注释方面做得很好:
@ApiProperty(identifier=false)
@ApiProperty(identifier=true)
,但同时您必须保留路径中的{id},因此请更改
"path"="/account/activate/{confirmationToken}",
到
"path"="/account/activate/{id}"