如何在DB中保存换行符并在View with Zend Framework中显示它们

时间:2012-01-23 22:02:34

标签: zend-framework

我有一张带有textarea的表格。发送表单时,Datamapper将数据输入数据库。

我的问题现在,如何将所有换行符保存在数据库中? 在我看来,我使用

 $this->escape($entry->description)'

我认为escape()会过滤掉这个不会吗? 所以我尝试使用下面的

echo nl2br($entry->description)

我已经将带有换行符的一些文本直接复制到数据库中,因为我不知道它应该如何保存,但没有任何改变。

  1. 如何将其保存在数据库中?我只使用$ table-> insert($ data);
  2. 我如何在视图中显示包含换行符的文字?
  3. 我希望有人能提供帮助,因为我无法找到解决方案。非常感谢你。

1 个答案:

答案 0 :(得分:1)

以下对我来说没问题,但没有问题:

$db = Zend_Db_Table::getDefaultAdapter();
$db->insert('testing', array('description' => "This is a test\nwith multiple\nlines in the db\n\nmore stuff"));

$select = $db->select()->from('testing');
$results = $select->query();
$row     = $results->fetch();

$this->view->description = $row['description'];

// in the view:

echo nl2br($this->description);

在视图中,我的字符串打印出来,还有多个换行符。

默认情况下,转义只会调用htmlspecialchars(),这不会影响换行符。但是你需要调用nl2br,因为换行不会导致字符串跨越网页中的多行,这就是你使用nl2br的原因。

因此,即使手动将包含换行符的数据插入数据库,当您从表中选择数据时也无法获得换行符?