搜尋

首頁  >  問答  >  主體

php - 關於redis 讀寫轉義

因為工作需要 才接觸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的結果

#請問為何會出現這種情況呢? 如何才能不轉義呢

迷茫迷茫2701 天前1496

全部回覆(2)我來回復

  • 漂亮男人

    漂亮男人2017-07-03 11:42:42

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

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

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-07-03 11:42:42

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

    回覆
    0
  • 取消回覆