拉拉维尔缓存空错误



我在Laravel 5.3中使用文件缓存。一切正常。在生产几天后,我的 laravel 中有很多错误.log WHERE 被调用了 NULL 值(来自缓存(。为什么会这样?每次我打开页面时,一切正常,没有错误。这可能是因为机器人访问我的页面造成的吗?我不知道我做错了什么...

CacheServiceProvider.php

// insert settings into cache
Cache::add('settings', Settings::with('langs')->get(), env('CACHE_TIMEOUT'));

帮手.php

$value = Cache::get('settings')->where('name', $name)->first()->value;

如果缓存值存在,我尝试使用条件,然后使用它,但将其放在任何地方真的很讨厌。如果价值不存在怎么办?我应该调用数据库查询吗?

在助手中.php我建议您使用:

$settings = Cache::remember('settings', env('CACHE_TIMEOUT'), function() { 
return Settings::with('langs')->get();
});
$value = !empty($settings) ? $settings->where('name', $name)->first()->value : null;

删除 CacheServiceProvider 中的内容.php因为此代码将在需要获取数据并缓存数据以供下次使用时触发一次。

希望对您有所帮助!

相关内容

  • 没有找到相关文章