You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Symfony3.4下Sonata Admin Bundle3.31.1更新Composer后依赖报错求助

解决Sonata Admin Bundle依赖不存在服务"sonata.templating"的问题

这不是Sonata的Bug,而是版本兼容性或依赖缺失导致的问题——Sonata Admin 3.x系列确实依赖sonata.templating服务,这个服务由sonata-project/templating-bundle提供,更新Composer时可能这个依赖被意外移除或者版本不匹配了。下面是具体的解决步骤:

步骤1:安装/更新Sonata Templating Bundle

首先检查你的composer.json里是否包含sonata-project/templating-bundle,如果没有,执行以下命令安装兼容Symfony 3.4的版本:

composer require sonata-project/templating-bundle:^1.10

如果已经安装,执行composer update sonata-project/templating-bundle确保版本和Sonata Admin 3.31.1兼容。

步骤2:在AppKernel中注册Bundle

打开app/AppKernel.php,确保SonataTemplatingBundle已经被注册,添加到registerBundles()方法中(建议放在SonataAdminBundle之前):

public function registerBundles()
{
    $bundles = [
        // ... 其他已注册的bundle
        new Sonata\TemplatingBundle\SonataTemplatingBundle(),
        new Sonata\AdminBundle\SonataAdminBundle(),
        // ...
    ];
    // ...
}

步骤3:确认Templating配置正确

打开app/config/config.yml,检查是否有以下配置(如果没有就添加):

sonata_templating:
    engine: twig

framework:
    templating:
        engines: ['twig']

步骤4:清除缓存

最后执行缓存清除命令,确保配置生效:

# 生产环境
php bin/console cache:clear --env=prod
# 开发环境
php bin/console cache:clear --env=dev

如果以上步骤都完成后问题还存在,建议检查composer.lock文件,确认sonata-project/admin-bundle和sonata-project/templating-bundle的版本是否匹配——Sonata Admin 3.31.1对应的Templating Bundle版本应该在1.9.x到1.10.x之间,若版本不兼容,可在composer.json中手动锁定版本后重新执行composer update。

内容的提问来源于stack exchange,提问作者mehmetsen80

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:48:31