因為工作需要 才接觸redis及相關 結果出現下面這種情況:
部分程式碼如下
$newsRedis = Redis::get('news_'.$id);
if ($newsRedis) return $newsRedis;
$re = NewNotice::select('community', 'title', 'created_at', 'content', 'initiator', 'img')->where('id', '=', $id)->get();
$change = NewNotice::where('id', '=', $id)->update([
'state' => '1'
]);
if (!$change) return 'NOTICE_ERROR';
// dd($change);
Redis::set('news_'.$id,$re);
Redis::expire('news_'.$id,10);
return $re;
}
結果發現結果每個符號前多了轉義斜線
#下面這個是我直接對return $re的結果
#請問為何會出現這種情況呢? 如何才能不轉義呢
漂亮男人2017-07-03 11:42:42
你取出來,先 json_decode
後在封裝資料輸出給前端。
你這個轉義,就是因為被 json_encode
了兩次。
你存在Redis
中的是JSON
字串了,你直接拿出來,放給資料裡,又進行 json_encode
一次,所以出現這樣是正常的。
淡淡烟草味2017-07-03 11:42:42
這個轉義是正常的。是json的原因,json要求鍵值都需要用雙引號"
括起來的,值中包含雙引號自然需要轉義了。你dd($change->datas)
就不會有斜槓了。