Twig nl2br过滤器不在实体上工作

Jul*_*ien 3 php template-engine symfony twig nl2br

我有一个带有__toString()方法的Address实体,如下所示:

public function __toString() {
    $result = $this->getStreet();

    if ($this->getStreet2())
        $result .= '\n' . $this->getStreet2();

    $result .= '\n' . $this->getZipCode().' '.$this->getCity();
    return $result;
}
Run Code Online (Sandbox Code Playgroud)

在我的模板中,我在实体上应用Twig nl2br过滤器:

{{ user.address|nl2br }}   
Run Code Online (Sandbox Code Playgroud)

但我仍然得到逃脱\n:

1107 West Adams Boulevard \n90007洛杉矶,加利福尼亚

我尝试使用此字符串而不是实体:

{{ "1107 West Adams Boulevard\n90007 Los Angeles, CA"|nl2br }}   
Run Code Online (Sandbox Code Playgroud)

我得到了预期的结果:

西亚当斯大道1107号

90007洛杉矶,加利福尼亚州

我也试过了

{{ user.address|raw|nl2br }} 
Run Code Online (Sandbox Code Playgroud)

哪个不安全,但仍然不起作用......我尝试过使用Twig 1.8.0和1.9.0.

任何的想法 ?

Flo*_*cel 11

而不是:

$result .= '\n' . $this->getZipCode().' '.$this->getCity();
Run Code Online (Sandbox Code Playgroud)

试试这个:

$result .= "\n" . $this->getZipCode()." ".$this->getCity();
Run Code Online (Sandbox Code Playgroud)

PHP将在双引号字符串中解释转义字符.

本PHP手册页可能有所帮助.