Я использую Laravel 5.7 и сохраняю настройки в базе данных.
public function store(Request $request)
{
$data = $request->only('app_name', 'app_desc', 'company_phone', 'company_address',
'service_wage', 'kavenegar_api', 'kavenegar_number'
);
foreach ($data as $key => $value) {
Setting::updateOrInsert(
['name' => $key],
['val' => $value]
);
}
return redirect()->back()->withFlashSuccess("saved");
}
Я могу получить настройки с помощью следующего помощника.
if (!function_exists('getSetting')) {
function getSetting($key)
{
return Setting::where('name', $key)->value('val');
}
}
Но естьпроблема;Мы перечисляем все настройки и вызываем getSetting ('setting_name') несколько раз, что делает один запрос к базе данных для каждого вызова.Это очень много запросов для получения настроек.
Я хочу использовать кеш, но как я могу, когда настройки хранятся в базе данных?Я тоже сохраняю их в кеше.