我正在用交响乐开发一个带有fosrestbundle的api。我也想在我的控制器中使用构造函数注入,就像我一直注入一些EntityRepository一样。
问题是这个注入不起作用,我得到一个错误,说明预期存储库但没有给出。
我想出了一些东西:FOSRestBundle自动生成一些url,但是如果我想使用构造函数注入,那么这个url必须使用我为我的控制器创建的服务的名称。例如,如果我的控制器服务定义如下:
dnd_agent_controller:
class: DnD\RaHApiBundle\Controller\AgentController
arguments: ["@dnd_agent_repository"]
然后我的路线必须这样定义:
agents_resource:
path: /agents
defaults: { _controller: dnd_agent_controller:getallAction}
注意_controller字段,它使用上面定义的服务名称,而不是namespacebundle:controller:action就像。
使用这种配置,我的构造函数注入工作,但这对我来说是一个问题,因为这个URL是由FOSRestBundle自动生成的,我喜欢它。
有没有办法在我的控制器和FOSRestBundle中同时使用构造函数注入?我该怎么做?
谢谢!
答案 0 :(得分:2)
是的,使用FOSRestBundle路由样式,但使用服务名称。
<强>路由强> 例如
agents_resource:
type: rest
resource: dnd_agent_controller
编辑:示例http://blog.dashboardhub.io/2015/09/26/symfony-controller-not-extending-fosrest-bundle/
的博客帖子