我在编辑页面视图的 Silverstripe 后端有一个 textareaField...要插入的文本包含换行符。如果我保存页面,文本会在 textareaField 中正确显示并带有换行符。换行符肯定会正确保存到数据库中。但是如何在前端正确显示文本?它总是在一行中输出而没有换行符。
我已经尝试过 $Text.RAW, $Text.XML,... 没有任何效果。
感谢您的帮助,亲切的问候,弗洛里安
我在编辑页面视图的 Silverstripe 后端有一个 textareaField...要插入的文本包含换行符。如果我保存页面,文本会在 textareaField 中正确显示并带有换行符。换行符肯定会正确保存到数据库中。但是如何在前端正确显示文本?它总是在一行中输出而没有换行符。
我已经尝试过 $Text.RAW, $Text.XML,... 没有任何效果。
感谢您的帮助,亲切的问候,弗洛里安
假设您使用的是 3.0,这是一个错误。你可以在这里看到它http://open.silverstripe.org/ticket/7596
一种解决方法是在您的文本字段上编写您自己的调用 nl2br 的函数。
这是一个例子:
public function NiceDescription () {
return (nl2br (Convert::raw2xml ($this->Description), true));
}
您可以将“描述”替换为您的文本属性的名称。
然后在您的模板文件中,如果您需要显示描述字段,您将调用该函数:
$NiceDescription
要在 html 中直观地呈现换行符,您需要将它们转换为<BR>
标签。见http://php.net/manual/de/function.nl2br.php