php - 關於redis 讀寫轉義
迷茫
迷茫 2017-07-03 11:40:42
0
2
1443

因為工作需要 才接觸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)
漂亮男人

你取出來,先 json_decode 後在封裝資料輸出給前端。
你這個轉義,就是因為被 json_encode 了兩次。

你存在Redis中的是JSON字串了,你直接拿出來,放給資料裡,又進行 json_encode 一次,所以出現這樣是正常的。

淡淡烟草味

這個轉義是正常的。是json的原因,json要求鍵值都需要用雙引號"括起來的,值中包含雙引號自然需要轉義了。你dd($change->datas) 就不會有斜槓了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!