Symfony 如何在YAML中定义自定义POST操作?
在我的项目中,我想创建一个自定义Symfony 如何在YAML中定义自定义POST操作?,symfony,routing,api-platform.com,Symfony,Routing,Api Platform.com,在我的项目中,我想创建一个自定义POST操作。虽然在路由中使用注释可以很好地工作,但我仍然无法使用YAML API资源定义 # src/AppBundle/Resources/config/api_resources/resources.yml AppBundle\Entity\Foo: collectionOperations: get: method: 'GET' special: route_name:
POST
操作。虽然在路由中使用注释可以很好地工作,但我仍然无法使用YAML
API资源定义
# src/AppBundle/Resources/config/api_resources/resources.yml
AppBundle\Entity\Foo:
collectionOperations:
get:
method: 'GET'
special:
route_name: 'foo_special'
路由
# app/config/routing.yml
foo_special:
path: '/foo/special'
methods: ['POST']
defaults:
_api_resource_class: 'AppBundle\Entity\Foo'
_api_collection_operation_name: 'special'
错误消息:
“hydra:说明”:“无法找到路径\/foo/special\”的控制器。路由配置错误
你知道这里怎么了吗?引用:
如果使用ADR模式(Action
class+\u invoke()
方法),则必须将控制器(或此处的操作)定义为服务,然后使用服务名称作为控制器。(即\u控制器:应用程序特殊操作
或\u控制器:AppBundle\action\special
)
也可以使用注释,请参见
引述:
如果使用ADR模式(Action
class+\u invoke()
方法),则必须将控制器(或此处的操作)定义为服务,然后使用服务名称作为控制器。(即\u控制器:应用程序特殊操作
或\u控制器:AppBundle\action\special
)
也可以使用注释,请参见
YAML中没有自定义的POST操作。就像在ASCII或UTF-8中没有这样的操作一样。应用程序可以解释ASCII字符的含义,甚至可以组合成YAML标量。这非常有用。谢谢你的澄清!YAML中没有自定义的POST操作。就像在ASCII或UTF-8中没有这样的操作一样。应用程序可以解释ASCII字符的含义,甚至可以组合成YAML标量。这非常有用。谢谢你的澄清!感谢您提供这段代码片段,它可能会提供一些有限的、即时的帮助。A通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请在您的答案中添加一些解释,包括您所做的假设。稍作解释将非常有用。感谢您提供此代码片段,它可能会提供一些有限的即时帮助。A通过展示为什么这是一个很好的解决问题的方法,并将使它对未来有其他类似问题的读者更有用。请在你的回答中添加一些解释,包括你所做的假设。一点解释就好了。
defaults:
_controller: 'AppBundle:Foo:special'
_api_resource_class: 'AppBundle\Entity\Foo'
_api_collection_operation_name: 'special'