Нулевая ошибка кэша Laravel - PullRequest
0 голосов
/ 05 июня 2018

Я использую File Cache в Laravel 5.3.Все отлично работаетПосле нескольких дней работы у меня в laravel.log было много ошибок, которые ГДЕ вызывали по значению NULL (из кэша).Почему это происходит?Каждый раз, когда я открываю страницу, все работает без ошибок.Это может быть вызвано тем, что боты получают доступ к моей странице?Понятия не имею, что я делаю не так ...

CacheServiceProvider.php

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

Helpers.php

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

Я пытался использовать условия, если кэшзначение существует, тогда используйте его, но это действительно раздражает, чтобы поместить это везде.А что если значение не существует?Должен ли я вызвать запрос к базе данных?

1 Ответ

0 голосов
/ 05 июня 2018

в Helpers.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, потому что этот код будет запускаться один раз, когда это необходимо для получения данных и кэширования их в следующий раз.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...