rhy*_*thm 2 caching laravel eloquent laravel-5
我正在使用 Laravel 5.2 并希望缓存 eloquent 结果,但它不会在缓存中存储空结果(= null)。有什么办法吗?
return Cache::remember("cacheKey_{$id}", 120, function () use ($id) {
return FooModel::where(...)->first();
});
Run Code Online (Sandbox Code Playgroud)
当结果不为空时,缓存工作正常。
Laravel 缓存不允许null在缓存中存储值,但您可以存储false值。
cache(['key' => null],120)
var_dump(Cache::has('key')); //prints false
cache(['key' => false],120)
var_dump(Cache::has('key')); //prints true
Run Code Online (Sandbox Code Playgroud)
所以我建议你尝试这样的事情:
return Cache::remember("cacheKey_{$id}", 120, function () use ($id) {
$your_check = FooModel::where(...)->first();
return is_null($your_check) ? false : $your_check;
});
Run Code Online (Sandbox Code Playgroud)
或者,您可以假设当没有密钥时,它将为空(使用Cache::has()或 进行检查isset())
| 归档时间: |
|
| 查看次数: |
4067 次 |
| 最近记录: |