如何在Twig中实现地址与邮编城市变量间换行?
解决Twig模板地址换行输出的问题
要实现你需要的两行地址格式,核心是处理HTML中的换行逻辑,结合你的变量,这里有两种可行方案:
方案1:使用<pre>标签保留原生换行
既然你期望的输出是在<pre>标签内,直接拼接换行符\n即可,因为<pre>会保留文本的格式:
<pre class="lang-php prettyprint-override"> {{ user.address ~ "\n" ~ user.zipcode ~ ' ' ~ user.city }} </pre>
注意:如果变量中包含HTML特殊字符(比如<、>),可以给变量加上|e过滤器转义,避免破坏页面结构。
方案2:用<br>标签实现普通HTML换行
如果不需要<pre>标签,想在普通页面中实现换行,直接插入<br>标签即可:
{{ user.address }}<br> {{ user.zipcode }} {{ user.city }}
或者用拼接方式(需要给<br>加上|raw过滤器防止被转义):
{{ user.address ~ '<br>'|raw ~ user.zipcode ~ ' ' ~ user.city }}
你之前代码的问题
- 变量名不匹配:你提到的是
user.address等变量,但代码里用的是company.address,这会导致变量无法正确取值; nl2br的使用场景错误:nl2br是将文本中的\n转换为<br>,但你是在拼接时加的\n,且套在zipcode过滤器里,逻辑不对;- 若没有
<pre>标签,普通HTML会忽略\n,必须用<br>才能显示换行。
内容的提问来源于stack exchange,提问作者michouël
相关产品推荐
相关产品推荐

