因為工作需要 才接觸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的結果請問為何會出現這種情況呢? 如何才能不轉義呢
2 回答

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
這個轉義是正常的。是json的原因,json要求鍵值都需要用雙引號"
括起來的,值中包含雙引號自然需要轉義了。你dd($change->datas)
就不會有斜杠了。實在不想看到雙引號,可以先url_encode,使用的時候再url_decode,不過沒有必要。

一只名叫tom的貓
TA貢獻1906條經驗 獲得超3個贊
你取出來,先 json_decode
后在封裝數據輸出給前端。
你這個轉義,就是因為被 json_encode
了兩次。
你存在Redis
中的是JSON
字符串了,你直接拿出來,放給數據里,又進行 json_encode
一次,所以出現這樣是正常的。
- 2 回答
- 0 關注
- 3420 瀏覽
添加回答
舉報
0/150
提交
取消