Php 未在细枝模板中替换变量

Php 未在细枝模板中替换变量,php,twig,swiftmailer,Php,Twig,Swiftmailer,我有以下PHP代码(仅使用+): 关于我的email.twig模板: 它包含{name}和{{letter} 它包含在{%block body%}之间。。。{%endblock%} 它有一个节点,带有一些CSS样式 更新:链接到模板 电子邮件发送正确,但有两个问题: 第二个变量字母不被替换。它是空的,即使$u POST['letter']不是空的 并非所有CSS样式都正确应用。我想我不能在电子邮件中使用所有CSS属性。我说得对吗? 有什么线索吗?我遇到了一个类似的问题并找到了解决方案:这

我有以下PHP代码(仅使用+):

关于我的email.twig模板:

  • 它包含{name}和{{letter}
  • 它包含在{%block body%}之间。。。{%endblock%}
  • 它有一个
    节点,带有一些CSS样式
更新:链接到模板

电子邮件发送正确,但有两个问题:

  • 第二个变量字母不被替换。它是空的,即使$u POST['letter']不是空的
  • 并非所有CSS样式都正确应用。我想我不能在电子邮件中使用所有CSS属性。我说得对吗?

有什么线索吗?

我遇到了一个类似的问题并找到了解决方案:这是由于模板中有一些不可打印的字符。不确定对你来说是否相同,但也许你应该试着重写{{letter}}部分。(我的法语键盘插入一个不可见的字符,并结合Alt-Gr+空格)


你能发布你的模板吗?就CSS而言,我们也必须看到这一点。请记住,每个电子邮件客户端应用css的方式不同。内联css可以帮助检查-抱歉延迟。我添加了一个到模板的链接:您是否使用硬编码变量对此进行了测试:
array('name'=>'foo','letter'=>'bar')?我在你的模板中没有看到任何奇怪的东西。是的,也用硬编码变量进行了测试。同样的问题。只是名字被替换了。也许它和CSS有关(段落有一个相关的CSS样式)。很奇怪。。。不过还是要谢谢你!如果问题与CSS有关,您至少可以在电子邮件源代码中看到变量值。你能确认它在那里是可见的吗?
# Load Twig and swiftmailer
require_once('lib/SwiftMailer/swift_required.php');
require_once('lib/Twig/Autoloader.php');
Twig_Autoloader::register();

$loader = new Twig_Loader_Filesystem('views');
$twig = new Twig_Environment($loader, array(
    'cache' => 'cache',
));

$mailer = Swift_Mailer::newInstance(Swift_MailTransport::newInstance());

# Render twig template to a string
$template = $twig->loadTemplate('email.twig');
$body = $template->renderBlock('body', array('name' => $_POST["name"], 'letter' => $_POST["letter"]));

$message = Swift_Message::newInstance()
    ->setFrom("info@mydomain.com")
    ->setSubject("Hi, ".$_POST["name"]." blahblahblah")
    ->setBody($body, 'text/html')
    ->setTo($_POST["email"]);

# Send email, using PHP mail function
$retval = $mailer->send($message);