2016-04-24 83 views
0

我正在使用Symfony 3.0表单构建器。发布数据时,我遇到了问题,因为发布的数据不匹配,导致无法进行reverseTransform。现在,我假设发生这种情况的原因是,数据被保存到数据库中,其中有很多\ r \ n可以在最后,或者在行和行之间创建段落,并且可以只是一个\ r \ n或多个。这些文本用作select的选项值。我认为Symfony正在“修剪”,可能会采取一些额外的步骤来确保数据进入数据库的方式。Symfony 3.0表单发布

我在调试过程中开始查看Symfony表单类,我发现它在每个字段发布数据时会执行一些正则表达式和修剪操作。但是,我尝试使用它来尝试匹配来自db的数据,以便在表单帖子时匹配字段的值,但不成功。基本上,我需要找到一种方法来确保我清理数据以匹配Symfony将要比较的数据,然后再将其设置在select选项上。

你们是否确切知道Symfony在发布时如何“修整”数据?只需要执行相同的过程,以便发布时数据匹配。我宁愿在数据库上的数据本身上执行此操作,但目前一些符合Symfony所做的PHP代码将会很好。

预先感谢您

编辑1 忘了提,有可能是其他字符/逃跑状饲料序列\˚F等,这来自于复制/粘贴用户保存数据时都做了,

回答

0

找出解决这个问题的方法。因此,使用Symfony \ Component \ Form \ Util \ StringUtil类的trim方法,我将选项值包裹在它的周围,并且当它发布时,它与Symfony完成的操作相同,因此值现在匹配。我失败的地方(之前我曾尝试过)是因为我是在选择价值的一部分而不是整体价值的基础上考虑的,认为只有我试图解决的部分就是问题,但并非如此。现在一切都很好。

回答以防万一有人在未来遇到类似的问题。