作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的新 Symfony 4 应用程序中创建一个电子邮件服务。
我已经尝试了一百万件事,但没有运气。目前我只能为 S4 找到一些关于这个主题的资源。感谢您的帮助。
这就是我想要实现的目标。我知道我必须在我的 Emailer 服务中使用不同的服务,但运气不好。
<?php
namespace App\Mailer;
class Emailer
{
public function sendWelcome($email): \Swift_Mailer
{
$message = (new \Swift_Message('P****** - Welcome In!'))
->setFrom('no-reply@p****n.com')
->setTo($email)
->setBody(
$this->renderView(
// templates/emails/registration.html.twig
'emails/registration.html.twig',
array('name' => $user->getUsername())
),
'text/html'
)
->setCharset('utf-8');
$mailer->send($message);
return true;
}
}
最佳答案
首先,您需要将模板服务注入(inject)到您的类中(构造函数注入(inject)),然后您可以使用它来呈现模板。
在代码中你可以看到我们在构造函数中对其进行了类型提示,因此 Symfony 依赖注入(inject)知道我们需要什么。然后我们就使用它。您的 $mailer
服务也是如此。
<?php
namespace App\Mailer;
use Symfony\Component\Templating\EngineInterface;
class Emailer
{
/**
* @var EngineInterface
*/
private $templating;
/**
* TestTwig constructor.
*/
public function __construct(EngineInterface $templating)
{
$this->templating = $templating;
}
public function sendWelcome($email): \Swift_Mailer
{
$message = (new \Swift_Message('P****** - Welcome In!'))
->setFrom('no-reply@p****n.com')
->setTo($email)
->setBody(
$this->templating->render(
// templates/emails/registration.html.twig
'emails/registration.html.twig',
array('name' => $user->getUsername())
),
'text/html'
)
->setCharset('utf-8');
$mailer->send($message);
return true;
}
}
关于php - 如何在 Symfony 4 服务中使用 renderView 和 twig 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50672754/
我是一名优秀的程序员,十分优秀!