【问题标题】:sylius controller customization is not overriding the vendor controllersylius 控制器自定义不会覆盖供应商控制器
【发布时间】:2026-02-20 13:15:01
【问题描述】:

我已经完成了 Sylius 控制器定制官方文档(http://docs.sylius.org/en/latest/customization/controller.html)中描述的所有过程。但是定义的控制器并没有覆盖默认的标准控制器。

services:
    sylius.controller.shop.homepage: AppBundle\Controller\Shop\HomepageController

它从服务报告错误

服务定义必须是以“@”开头的数组或字符串,但在 /home/xxxx/web/rude_data/app/config/services.yml 中为服务“sylius.controller.shop.homepage”找到字符串。检查 /home/xxxx/web/rude_data/app/config/services.yml 中的 YAML 语法(从“/home/xxxx/web/rude_data/app/config/config.yml”导入)。

我是 sylius 的新手,

所以一些教程会更好。谢谢你。

【问题讨论】:

    标签: controller sylius


    【解决方案1】:

    应该是:

    sylius.controller.shop.homepage:
            class: AppBundle\Controller\Shop\HomepageController
    

    我建议您加入 sylius slack 频道,在那里您可以询问有关文档和 sylius 相关问题的问题。社区真的很有帮助:)

    【讨论】:

    • 感谢您的回复。那真的很有帮助。控制器已被覆盖。但我仍然遇到问题。这是错误。 " 类型错误:传递给 AppBundle\Controller\Shop\HomepageController::__construct() 的参数 1 必须是 Symfony\Bundle\FrameworkBundle\Templating\EngineInterface 的实例,没有给出。”