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