因此,在我使用FOSUserBundle进行多个Symfony项目后,上述错误突然开始发生。
我尝试过包含模板服务(现在两次),似乎安装得很好。这是我的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"
},
我按照惯例设置了config.yml,security.yml和routing.yml文件,并将该包包含在AppKernel.php文件中。我也创建了User.php实体,但每次我尝试清除缓存或更新数据库时,都会收到此错误。
服务" fos_user.mailer"依赖于不存在的 服务"模板"
经过多次搜索后,我看不出在哪里解决这个问题。对此有任何帮助都非常感谢,因为它以前从未发生过,我总是使用FOSUserBundle来满足我的安全需求。
答案 0 :(得分:81)
在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%
答案 1 :(得分:66)
我刚刚遇到了同样的问题。有趣的是,我在创建Symfony 3.4项目之前创建了一个Symfony 3.3项目,而Symfony 3.3项目没有出现这个问题。所以他们必须删除3.4版本的模板组件。
要解决您的问题,您必须使用composer安装模板组件:
composer require symfony/templating
然后,在config.yml中的framework
键下添加以下配置:
templating:
engines: ['twig']
更新我最近不得不用FOSUserBundle启动一个新的Symfony 3.4项目,发现我只需要将上面的配置添加到我的config.yml文件中(如{{3}中所述) })。
答案 2 :(得分:0)
就我而言,在config.yml中进行如下更改后即可工作:
# FOSUser Configuration
fos_user:
db_driver: orm # other valid values are 'mongodb' and 'couchdb'
firewall_name: main
user_class: AppBundle\Entity\User
service: # this line
mailer: fos_user.mailer.twig_swift # this line (from the comment above)
from_email:
address: "test@test.com" # change this
sender_name: "Test App" # and this