Настройки загрузки Laravel из кеша

implode(' ', array_slice(explode(' ', $contents), 0, 5));

Примечание: здесь, наконец, вы можете увидеть 0, 10 он будет печатать от стартового слова до 10-го слова, поэтому вы можете исправить, как вы хотите начать с слова на общее число слов.

1
задан Tridev Shrestha 19 March 2019 в 07:35
поделиться

2 ответа

попробуйте это

if (!function_exists('getSetting')) 
{
    function getSetting($key)
    {
        return Setting::where('name', $key)->first()->val;
    }
}

И не забудьте добавить пространство имен App\Setting

Как работает функция

Например, если у вас есть настройка с именем app_name и пока вы передаете значение в функцию

Setting::where('name', $key)->first()->val;

getSetting('app_name');, он найдет first record с помощью клавиши app_name и выберет поле val значение из объекта и возвращает его

ОБНОВЛЕНО ДЛЯ КЭША

ЭТО НЕПРОВЕРЕННАЯ ФУНКЦИЯ

function getSetting($name)
    {
        if (Cache::has('setting_'.$name)) {
            return Cache::get('setting_'.$name);
        }

        $query = Setting::where('name', $key)->first();
        Cache::forever('setting_'.$name, $query->val);
        return $query->val;
    }

Это Запомнит кэш навсегда и посетит документацию, чтобы прочитать о cache

https://laravel.com/docs/5.8/cache

И не забудьте добавить use Illuminate\Support\Facades\Cache; в список пространств имен

0
ответ дан Manojkiran.A 19 March 2019 в 07:35
поделиться

Это довольно просто. Обратитесь к документам по кешированию за подробностями, но основная идея такова:

function getSetting($key)
{
    return Cache::remember('setting:' . $key, 3600, function() use($key) {
        return Setting::where('name',$key)->value('val');
    });
}

Вы также можете кэшировать все настройки в одно значение кэша. В зависимости от того, сколько настроек есть и какую пропорцию вы используете в среднем запросе, это может быть или не быть хорошим подходом.

0
ответ дан ceejayoz 19 March 2019 в 07:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: