Laravel Cache
Configuration .env
CACHE_STORE=database
MEMCACHED_HOST=127.0.0.1
Use Cache
use Illuminate\Support\Facades\Cache;
class CategoryController extends Controller{
public function index(){
if(Cache::has('categories')){
$data = Cache::get('categories');
}else{
$data = Category::all();
Cache::put('categories', $data);
}
return $data;
}
public function store(Request $req){
$data = $req->validate(['name' => 'required']);
return Category::create($data);
}
public function show($id){
$key = 'category_' . $id;
if(Cache::has($key)){
$data = Cache::get($key);
}else{
$data = Category::find($id);
Cache::put($key, $data);
}
return $data;
}
public function update(Request $req, int $id){
Cache::deleteMultiple(['categories', 'category_' . $id]);
$data = $req->validate(['name' => 'required', 'id' => 'required']);
$obj = Category::find($id);
return $obj->update($data);
}
public function destroy(int $id){
Cache::delete('categories');
Cache::delete('category_' . $id);
return Category::find($id)->delete();
}
}