symfony - 如何在 EventListener 中呈现模板?

标签 symfony

如何在 Symfony 2 的 EventListener 中渲染模板?

class RequestListener
{
    public function __construct() { }

    public function onKernelRequest(GetResponseEvent $event)
    {
        $request  = $event->getRequest();

        // Here I want to render a particular twig template
        $response = new Response('Forbidden', 401);

        // replacing the response...
        $event->setResponse($response);
    }
}

你能帮我解决这个问题吗?

最佳答案

您可以像下面这样注入(inject) EngineInterface;

use Twig\Environment;

public $_engine;

public function __construct(\Swift_Mailer $mailer, Environment $engine)
{
    $this->mailer= $mailer;
    $this->_engine = $engine;
}

this->mailer->send( (new \Swift_Message('something happened'))
            ->setFrom('test@test.com')
            ->setTo('user@user.com')
            ->setBody($this->_engine->render('mails/test.html.twig',[
             ])
        );

关于symfony - 如何在 EventListener 中呈现模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6874521/

相关文章:

symfony - 无法在 Symfony2 websocket 连接上调用函数

php - Symfony2 Assetic 和 Less Sourcemaps

php - 找不到属性 Application\Sonata\NewsBundle\Entity\Post::$tags 的元数据。请确保你的 Doctrine 映射配置正确

forms - Symfony2 形式 : Money Currency Symbol and Displaying in Twig

php - Symfony Controller 无法访问容器

php - 计算 imagefk 等于的记录总数?在交响乐中

mysql - Symfony2、Doctrine2、MySql、查看表格

symfony - 获取上传文件的原始名称

javascript - 在 Symfony2 中嵌入多级表单集合

Symfony 冒充另一个用户后获得原始用户