将服务设置为子控制器

时间:2014-12-24 09:37:39

标签: php symfony

我有两个包A和B. A是B的父包。'A'有AController,带有3个参数的构造方法,定义为服务。

然后我在Bundle'B'中有BController,它扩展了Acontroller。我需要调用B控制器的方法。我也为BController做过服务。但问题是它在__construct中抛出了缺少参数1的错误。

我有什么错过的。

Class AController{
    public function __construct(A,B,C)
    {
        .......
    }
}

Acontroller的服务

controller_A:
    class: A\Bundle\ABundle\Controller\AController
    arguments:
        - @A
        - "%a.config%"
        - @form.factory

对于B组

Class BController extends Acontroller{
    .....
}

Bcontroller的服务

controller_B:
    class: B\Bundle\BBundle\Controller\BController
    arguments:
        - @B
        - "%B.config%"
        - @form.factory

1 个答案:

答案 0 :(得分:4)

这看起来像路由问题。你有没有设置:

/**
 * @Route(service="your_bundle.b_controller")
 */
class BController extends Acontroller{

此处的说明:http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html#controller-as-service