Zend framework 如何在DB中保存换行符并使用Zend Framework在视图中显示它们

Zend framework 如何在DB中保存换行符并使用Zend Framework在视图中显示它们,zend-framework,Zend Framework,我有一个带文本区的表单。发送表单时,Datamapper将数据输入数据库 我现在的问题是,如何将所有换行符保存在数据库中? 在我看来,我使用 $this->escape($entry->description)' 我认为escape()会过滤掉这个,不是吗? 所以我试着使用下面的 echo nl2br($entry->description) 我已经将一些带有换行符的文本直接复制到数据库中,因为我不知道该如何保存,但没有任何更改 如何将其保存在数据库中?我只使用$tabl

我有一个带文本区的表单。发送表单时,Datamapper将数据输入数据库

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

 $this->escape($entry->description)'
我认为escape()会过滤掉这个,不是吗? 所以我试着使用下面的

echo nl2br($entry->description)
我已经将一些带有换行符的文本直接复制到数据库中,因为我不知道该如何保存,但没有任何更改

  • 如何将其保存在数据库中?我只使用$table->insert($data)
  • 如何在视图中显示带有换行符的文本

  • 我希望有人能帮忙,因为我找不到解决办法。非常感谢。

    以下内容对我来说很好,没有任何问题:

    $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将其读出。非常感谢你的帮助!我现在明白发生了什么。我在数据库中只有单词,然后手动将长文本复制到数据库中,正如您所描述的,这是行不通的。再次非常感谢!!