API PLATFORM自定义操作中的自定义标识符

问题描述 投票:-1回答:1

我想在自定义操作中使用自定义标识符,而不使用像这样的{id}。

 @ApiResource(
   itemOperations={
     "FORGOT-PASSWORD"={
        "method"="PUT",
        "path"="/users/{forgotPasswordToken}/forgot-password",
        "controller"="App\Controller\ForgotPasswordController",
        "defaults"={"identifiedBy"="forgotPasswordToken"}
        }
    }
  )

但是我仍然与“无效的标识符值或配置”相同的错误。

请问任何问题?

rest symfony api-platform.com
1个回答
0
投票

这是因为Api平台具有一个Read侦听器,该侦听器试图检索到您的item操作的实体链接。

对于您的自定义操作,您的路径中没有{id}之类的标识符来标识您的资源,因此解决方案是使用类似这样的方法停用读取监听器:

@ApiResource(
   itemOperations={
     "FORGOT-PASSWORD"={
        "method"="PUT",
        "path"="/users/{forgotPasswordToken}/forgot-password",
        "controller"="App\Controller\ForgotPasswordController",
        "defaults"={"identifiedBy"="forgotPasswordToken"},
        "read"=false
        }
    }
  )
© www.soinside.com 2019 - 2024. All rights reserved.