首页 > 解决方案 > Symfony 5 Reusable Bundles 控制器没有容器集,你是否忘记将其定义为服务订阅者

问题描述

我的可重用捆绑包中的 AbstractController 有问题。

没有它工作 AbstractController 它工作。

class MyCustomController  
{
    public function sayHello(){
        return new Response('Hello');
    }
}

使用 AbstractController 它不起作用:

class MyCustomController extends AbstractController
{
    public function sayHello(){
        return new Response('Hello');
    }
}

我有一个错误:

reusable_tools.controller.my_custom_controller" 没有设置容器,你是不是忘了把它定义为服务订阅者?

控制器声明为:

<service id="reusable_tools.controller.my_custom_controller" class="Reusable\ToolsBundle\Controller\MyCustomController" public="true"/>
<service id="Reusable\ToolsBundle\Controller\MyCustomController" alias="reusable_tools.controller.my_custom_controller"/>

路线.xml:

<route id="reusable_tools_controller_my_custom_controller" controller="reusable_tools.controller.my_custom_controller:sayHello" path="/" />

调试:容器:

Reusable\ToolsBundle\Controller\MyCustomController                                     alias for "reusable_tools.controller.my_custom_controller" 

有任何想法吗?

配置:Symfony 5.2.6(完整版)PHP 8.0.3

标签: symfony5bundles

解决方案


努力解决同样的问题。问题是

现在我决定在我的应用程序中添加以下几行config/services.yml

services:
   <namespace>\<Bundle>\Controller\:
        resource: '@Bundle/Controller/'
        tags: ['controller.service_arguments']

没有设法将它添加到我的捆绑包中的服务中,所以现在只需在我的README.md.

现在这个解决方案工作正常。


推荐阅读