如何使用Redis和Laravel修复php json_编码?
当我尝试做出json响应时,第一个响应不是json值,如下所示如何使用Redis和Laravel修复php json_编码?,php,json,laravel,Php,Json,Laravel,当我尝试做出json响应时,第一个响应不是json值,如下所示 { "success": true, "data": "{\"name\":\"Adventure\",\"slug\":\"adventure\"}" } 但当我尝试第2、第3、…,响应是Json值 { "success": true, "data": { "name": "Adventure", "slug": "adventure" } } 如何解决这个问题,我用的是拉威尔。 这是我的密码 $sl
{
"success": true,
"data": "{\"name\":\"Adventure\",\"slug\":\"adventure\"}"
}
但当我尝试第2、第3、…,响应是Json值
{
"success": true,
"data": {
"name": "Adventure",
"slug": "adventure"
}
}
如何解决这个问题,我用的是拉威尔。
这是我的密码
$slug = $request->header()['slug'][0];
$redis = Redis::get('genre_details_'.$slug);
$redis = json_decode($redis);
if(empty($redis)){
$query = Genre::select('name', 'slug')->where('slug', $slug)->first();
if(empty($query)){
return response()->json(['success' => false, 'message' => 'slug code is wrong!'],406);
}
Redis::set('genre_details_'.$slug,json_encode($query));
Redis::expire('genre_details_'.$slug, 7200);
$redis = Redis::get('genre_details_'.$slug);
}
$response = [
'success' => true,
'data' => $redis
];
return response()->json($response);
移动
$redis=json\u解码($redis)如果(空($redis)){}代码后的
因为当你把数据放到redis时,你把它放到那里json\u encode
d。但不是解码。当你第二次、第三次从redis获得数据时,你就可以解码了。因此,您需要解码您的数据每次都将您的代码粘贴到这里。我已将我的代码添加到@u\u mulder