laravel框架cache::remember

我们经常需要对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]);
}
}
```

    A+
发布日期:2021年07月10日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: