Zend framework 如何在DB中保存换行符并使用Zend Framework在视图中显示它们
我有一个带文本区的表单。发送表单时,Datamapper将数据输入数据库 我现在的问题是,如何将所有换行符保存在数据库中? 在我看来,我使用Zend framework 如何在DB中保存换行符并使用Zend Framework在视图中显示它们,zend-framework,Zend Framework,我有一个带文本区的表单。发送表单时,Datamapper将数据输入数据库 我现在的问题是,如何将所有换行符保存在数据库中? 在我看来,我使用 $this->escape($entry->description)' 我认为escape()会过滤掉这个,不是吗? 所以我试着使用下面的 echo nl2br($entry->description) 我已经将一些带有换行符的文本直接复制到数据库中,因为我不知道该如何保存,但没有任何更改 如何将其保存在数据库中?我只使用$tabl
$this->escape($entry->description)'
我认为escape()会过滤掉这个,不是吗?
所以我试着使用下面的
echo nl2br($entry->description)
我已经将一些带有换行符的文本直接复制到数据库中,因为我不知道该如何保存,但没有任何更改
我希望有人能帮忙,因为我找不到解决办法。非常感谢。以下内容对我来说很好,没有任何问题:
$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);
在视图中,我将字符串打印出来,但多个换行符仍然存在
默认情况下,转义只调用,这不会影响换行符。但是您需要调用nl2br,因为换行符不会导致字符串在网页中跨越多行,这就是您使用nl2br的原因
因此,即使手动将带有换行符的数据插入数据库,从表中选择数据时也无法获得换行符?以下操作对我来说很好,没有问题:
$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);
在视图中,我将字符串打印出来,但多个换行符仍然存在
默认情况下,转义只调用,这不会影响换行符。但是您需要调用nl2br,因为换行符不会导致字符串在网页中跨越多行,这就是您使用nl2br的原因
因此,即使手动将带有换行符的数据插入数据库,从表中选择数据时也无法获得换行符?非常感谢。我刚刚在我的数据库中复制了你的文本,但我用\n直接打印出来,因此没有显示换行符。是的,如果你能在数据库中看到
\n
,那么它就没有插入换行符,而是一个文本`和n。PHP中的
\n`被转换为新行,这就是它与insert一起工作的原因。如果您只是将代码复制到测试控制器和视图中,您是否看到新行?您必须调整插入以包含插入到表中所需的最小数据量。太好了,我将其输入到控制器中,您是正确的,它现在可以工作了。因此,这意味着我必须找到一种方法,以正确的方式将其保存到数据库中,然后用nl2br将其读出。非常感谢你的帮助!我现在明白发生了什么。我在数据库中只有单词,然后手动将长文本复制到数据库中,正如您所描述的,这是行不通的。再次非常感谢!!非常感谢你。我刚刚在我的数据库中复制了你的文本,但我用\n直接打印出来,因此没有显示换行符。是的,如果你能在数据库中看到\n
,那么它就没有插入换行符,而是一个文本`和n。PHP中的
\n`被转换为新行,这就是它与insert一起工作的原因。如果您只是将代码复制到测试控制器和视图中,您是否看到新行?您必须调整插入以包含插入到表中所需的最小数据量。太好了,我将其输入到控制器中,您是正确的,它现在可以工作了。因此,这意味着我必须找到一种方法,以正确的方式将其保存到数据库中,然后用nl2br将其读出。非常感谢你的帮助!我现在明白发生了什么。我在数据库中只有单词,然后手动将长文本复制到数据库中,正如您所描述的,这是行不通的。再次非常感谢!!