2013-07-25 32 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場),那麼它通常會保存沒有任何斜線等