Je suis entré en contact avec Redis et des éléments associés en raison de besoins professionnels. Le résultat est le suivant :
Une partie du code est la suivante
$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';
//jj($change);
Redis::set('news_'.$id,$re);
Redis::expire('news_'.$id,10);
return $re;
}
Il s'est avéré qu'il y avait une barre oblique d'évasion avant chaque symbole
Ce qui suit est le résultat de mon retour direct $re
Excusez-moi, pourquoi cela arrive-t-il ? Comment puis-je éviter de m'échapper
?
Vous le retirez et
json_decode
后在封装数据输出给前端。你这个转义,就是因为被
json_encode
le faites deux fois.Tu as existé
Redis
中的是JSON
字符串了,你直接拿出来,放给数据里,又进行json_encode
une fois, donc c'est normal.Cette fuite est normale. C'est à cause de json. JSON nécessite des guillemets doubles pour les valeurs clés
"
括起来的,值中包含双引号自然需要转义了。你dd($change->datas)
donc il n'y aura pas de barres obliques. Si vous ne voulez vraiment pas voir de guillemets doubles, vous pouvez d'abord url_encode puis url_decode lorsque vous l'utilisez, mais ce n'est pas nécessaire.