微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Symfony REST ParamConverter 注释问题

如何解决Symfony REST ParamConverter 注释问题

我有这个路线设置:

* @Rest\Post("/training-questionnaire/clone/{sourceTraining}/{targetTraining}",name="training.clone.questionnaire")
     * @ParamConverter("sourceTraining",class="AppBundle:Training")
     * @ParamConverter("targetTraining",class="AppBundle:Training")
     * 
     * @Rest\Post("/v1.1/training-questionnaire/clone/{uuid}/{target_training_uuid}",name="training.clone.questionnaire.v1.1")
     * @ParamConverter("sourceTraining",class="AppBundle:Training",options={"mapping": {"uuid": "uuid"}})
     * @ParamConverter("targetTraining",options={"mapping": {"target_training_uuid": "uuid"}})
     * 
     * @ViewAnnotation()
...
public function cloneQuestionnaireAction(Training $sourceTraining,Training $targetTraining) {...}

此路由 training.clone.questionnaire.v1.1 根据 uuid 参数给出正确的 id,但第一个 training.clone.questionnaire 显示消息:

{
    "code": 404,"message": "AppBundle:Training object not found."
}

但是,如果我更改注释的顺序,例如:

* @Rest\Post("/v1.1/training-questionnaire/clone/{uuid}/{target_training_uuid}",options={"mapping": {"target_training_uuid": "uuid"}})
     * 
     * @Rest\Post("/training-questionnaire/clone/{sourceTraining}/{targetTraining}",class="AppBundle:Training")

路线 training.clone.questionnaire 工作和 training.clone.questionnaire.v1.1 为两种训练提供相同的 ID,这也不好..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。