Saya terlibat dengan redis dan perkara yang berkaitan kerana keperluan kerja adalah seperti berikut:
Sebahagian kod adalah seperti berikut
$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;
}
Ternyata terdapat garis miring melarikan diri sebelum setiap simbol
Berikut ialah hasil pulangan langsung saya $re
Maaf, mengapa ini berlaku? Bagaimana saya boleh mengelak daripada melarikan diri?
Anda keluarkan dan
json_decode
后在封装数据输出给前端。你这个转义,就是因为被
json_encode
buat dua kali.Anda wujud
Redis
中的是JSON
字符串了,你直接拿出来,放给数据里,又进行json_encode
sekali, jadi ini adalah perkara biasa.Meloloskan diri ini adalah perkara biasa. Ini kerana json. JSON memerlukan petikan berganda untuk nilai utama
"
括起来的,值中包含双引号自然需要转义了。你dd($change->datas)
jadi tidak akan ada garis miring. Jika anda benar-benar tidak mahu melihat petikan berganda, anda boleh url_encode dahulu dan kemudian url_decode apabila menggunakannya, tetapi ia tidak perlu.