FOSRestBundle控制器作为服务无法正常工作

时间:2015-03-13 20:43:28

标签: symfony dependency-injection fosrestbundle

我正在用交响乐开发一个带有fosrestbundle的api。我也想在我的控制器中使用构造函数注入,就像我一直注入一些EntityRepository一样。

问题是这个注入不起作用,我得到一个错误,说明预期存储库但没有给出。

我想出了一些东西:FOSRestBundle自动生成一些url,但是如果我想使用构造函数注入,那么这个url必须使用我为我的控制器创建的服务的名称。例如,如果我的控制器服务定义如下:

services.yml

dnd_agent_controller:
    class: DnD\RaHApiBundle\Controller\AgentController
    arguments: ["@dnd_agent_repository"]

然后我的路线必须这样定义:

的routing.yml

agents_resource:
  path: /agents
  defaults: { _controller: dnd_agent_controller:getallAction}

注意_controller字段,它使用上面定义的服务名称,而不是namespacebundle:controller:action就像。

使用这种配置,我的构造函数注入工作,但这对我来说是一个问题,因为这个URL是由FOSRestBundle自动生成的,我喜欢它。

有没有办法在我的控制器和FOSRestBundle中同时使用构造函数注入?我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:2)

是的,使用FOSRestBundle路由样式,但使用服务名称。

<强>路由 例如

agents_resource:
    type: rest
    resource: dnd_agent_controller

编辑:示例http://blog.dashboardhub.io/2015/09/26/symfony-controller-not-extending-fosrest-bundle/

的博客帖子