服务"fos_user.mailer"依赖于不存在的服务"模板化"

Mic*_*son 36 symfony fosuserbundle

因此,在我为几个Symfony项目使用FOSUserBundle之后,突然发生了上述错误.

我已经尝试过包含模板服务(现在两次),看起来安装得很好.这是我的composer.json中的需求列表:

"require": {
    "php": ">=5.5.9",
    "doctrine/doctrine-bundle": "^1.6",
    "doctrine/orm": "^2.5",
    "friendsofsymfony/user-bundle": "^2.0",
    "incenteev/composer-parameter-handler": "^2.0",
    "sensio/distribution-bundle": "^5.0.19",
    "sensio/framework-extra-bundle": "^5.0.0",
    "symfony/monolog-bundle": "^3.1.0",
    "symfony/polyfill-apcu": "^1.0",
    "symfony/swiftmailer-bundle": "^2.6.4",
    "symfony/symfony": "3.4.*",
    "symfony/templating": "^3.4",
    "twig/twig": "^1.0||^2.0"
},
Run Code Online (Sandbox Code Playgroud)

我按照惯例设置了config.yml,security.yml和routing.yml文件,并在AppKernel.php文件中包含了bundle.我还创建了User.php实体,但每次我尝试清除缓存或更新数据库时,都会收到此错误.

服务"fos_user.mailer"依赖于不存在的服务"模板化"

经过多次搜索,我看不出在哪里解决这个问题.对此的任何帮助都非常感谢,因为它以前从未发生过,我总是使用FOSUserBundle来满足我的安全需求.

Moc*_*ine 87

在Symfony 3.4和FosUserBundle 2.0中,将服务邮件程序添加到fos_user配置中:

fos_user:
    db_driver: orm # other valid values are 'mongodb' and 'couchdb'
    firewall_name: main
    user_class: AppBundle\Entity\User
    service:                               # this lines
        mailer: fos_user.mailer.twig_swift # this lines
    from_email:
        address: "%mailer_user%"
        sender_name: "%mailer_user%
Run Code Online (Sandbox Code Playgroud)

  • 它与新的Symfony 3.4项目完美配合.谢谢! (5认同)
  • 如果解决方案不适用于3.4,你的回答救了我!感谢分享! (4认同)
  • 谢谢,它也适用于3.4.但是,这是什么意思 ?我认为这是指示fos_user邮件服务是TwigSwiftMailer.但是定义了`fos_user.mailer.twig_swift`的地方? (4认同)
  • Symfony 3.4的正确答案. (4认同)
  • 这是正确的答案3.4 :) (3认同)
  • 这适用于symfony 3.4.谢谢 (2认同)

Kod*_*son 68

我刚刚遇到了同样的问题.有趣的是,我在创建Symfony 3.4项目之前创建了一个Symfony 3.3项目,而Symfony 3.3项目没有出现这个问题.因此,他们必须删除3.4版本的模板组件.

要解决您的问题,您必须使用composer安装模板组件:

composer require symfony/templating
Run Code Online (Sandbox Code Playgroud)

然后,framework在config.yml中的键下添加以下配置:

templating:
    engines: ['twig']
Run Code Online (Sandbox Code Playgroud)

更新:我最近不得不用FOSUserBundle启动一个新的Symfony 3.4项目,发现我只需要将上面的配置添加到我的config.yml文件中(如下面的评论中所述).

  • 除了接受的答案之外,似乎已经安装了模板引擎,但由于某种原因,它只是从配置文件中删除,所以任何人都有同样的问题,首先尝试添加在接受的答案中说的内容.它对我有用,我确信我没有在FOSUserBundle旁边安装任何东西. (4认同)