我正在使用Symfony 4.我想在我的服务中使用路由器和邮件程序。我使用依赖注入包含它们。
public function __construct(Swift_Mailer $mailer, EngineInterface $templating, RouterInterface $router)
{
$this->mailer = $mailer;
$this->router = $router;
$this->templating = $templating;
}
我收到此错误:
argument "$templating" of method "__construct()" references interface "Symfony\Component\Templating\EngineInterface" but no such service exists. It cannot be auto-registered because it is from a different root namespace. Did you create a class that implements this interface?
在Symfony 4中使用Mailer,路由器服务的任何提示?
答案 0 :(得分:5)
我必须composer require symfony/templating
才能获得Symfony\Bundle\FrameworkBundle\Templating\EngineInterface
服务。
还必须在framework
下添加以下配置:
templating:
enabled: false
engines: ['twig']
答案 1 :(得分:3)
请阅读错误消息,开发人员没有为了好玩而写异常... 更改TypeHint并使用Interface,autowire使用接口类型提示
试试这个:
public function __construct(Swift_Mailer $mailer, \Twig_Environment $templating, RouterInterface $router)