如何使用Redis和Laravel修复php 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

当我尝试做出json响应时,第一个响应不是json值,如下所示

{
"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时,你把它放到那里
json\u encode
d。但不是解码。当你第二次、第三次从redis获得数据时,你就可以解码了。因此,您需要解码您的数据每次

都将您的代码粘贴到这里。我已将我的代码添加到@u\u mulder