我们经常需要对cache进行操作
常见的方法就是首先判断缓存是否存在,如果不存在,那么读取数据库,然后保存到缓存中
这样,下次读取就会先从缓存读取,减少了数据库读取的次数,降低了数据库的压力
在laravel框架中,有没有优雅的实现方法呢
我们可以用cache::remember来实现
代码简练优雅,而且不需要用json_encode,json_decode对数据组进行编码
以下为代码
```
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Test\ApiResponse\Facades\ApiResponse;
class NewClassController extends Controller
{
    //根据关数获取配置
    public function index(Request $request,$id)
    {
        $res = Cache::remember("class_list_".$id,10,function () use($id){
            $res = DB::connection('mysql')->table('class')->select('id','name','preface')->where('type',$id)->where('status',1)->get()->toArray();
            foreach($res as $k=>&$v){
                $v = get_object_vars($v);
                $res[$k]['preface'] = env('CDN_COS').'upload/'.$v['preface'];
            }
            return $res;
        });
        return ApiResponse::success(['list' => $res]);
    }
}
```



