2013-07-25 105 views
1

通过使用cakephp框架,我有一个通常的数组结构如下;cakephp更新数据与转义报价

$myUsualArray = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 

当我通过使用json_encode内置PHP函数,当我从DB检查通过使用saveField函数然后更新其相应的场序列化它,这些值如下;

value in DB; "{\"a\":1,\"b\":2,\"c\":3,\"d\":4,\"e\":5}" 

在现场更新期间,我只读了当前表的id并应用saveField函数。

使用:cakephp 2.x

有什么建议吗?

+0

究竟是你的问题呢?在读取数据和json_decode()时,数组是否再次看起来像原始数据? – mark

+0

当我解码它,并试图通过foreach()抛出一个错误的值通过 – canpoint

+0

显示在这里为我们解码的值。另外:你是否禁用了所有那些过时和错误的设置,如magic-quotes-gpc? – mark

回答

0

问题是JSON中的斜杠。我处理的方式是使用模型中的beforeSaveafterFind回调方法来进行编码/解码。

beforeSave我做json_encode($array)。在afterFind我做一个preg_replace()清理斜线,然后json_decode()。然后,在模型中处理一切干净,我从来不必担心在其他地方。

+0

感谢您的答案 – canpoint

0

问题的,而不是使用saveField FUNC解决了,我实现了自定义数组值保存功能(包括json_encode场),那么它通常会保存没有任何斜线等