我有一个带有__toString()方法的Address实体,如下所示:
public function __toString() {
$result = $this->getStreet();
if ($this->getStreet2())
$result .= '\n' . $this->getStreet2();
$result .= '\n' . $this->getZipCode().' '.$this->getCity();
return $result;
}
在我的模板中,我在实体上应用了Twig nl2br filter:
{{ user.address|nl2br }}
但我仍然得到了转义\ n:
1107 West Adams Boulevard \ n90007洛杉矶,加利福尼亚州
我尝试使用此字符串而不是实体:
{{ "1107 West Adams Boulevard\n90007 Los Angeles, CA"|nl2br }}
我得到了预期的结果:
1107 West Adams Boulevard
90007洛杉矶,加利福尼亚
我也试过
{{ user.address|raw|nl2br }}
哪个不安全,但仍然不起作用...... 我尝试过使用Twig 1.8.0和1.9.0。
有什么想法吗?
答案 0 :(得分:11)
而不是:
$result .= '\n' . $this->getZipCode().' '.$this->getCity();
试试这个:
$result .= "\n" . $this->getZipCode()." ".$this->getCity();
PHP将在双引号字符串中解释转义字符。
This PHP Manual page可能会有所帮助。