implode(' ', array_slice(explode(' ', $contents), 0, 5));
Примечание: здесь, наконец, вы можете увидеть 0, 10 он будет печатать от стартового слова до 10-го слова, поэтому вы можете исправить, как вы хотите начать с слова на общее число слов.
попробуйте это
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
значение из объекта и возвращает его
ОБНОВЛЕНО ДЛЯ КЭША
ЭТО НЕПРОВЕРЕННАЯ ФУНКЦИЯ
blockquote>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;
в список пространств имен
Это довольно просто. Обратитесь к документам по кешированию за подробностями, но основная идея такова:
function getSetting($key)
{
return Cache::remember('setting:' . $key, 3600, function() use($key) {
return Setting::where('name',$key)->value('val');
});
}
Вы также можете кэшировать все настройки в одно значение кэша. В зависимости от того, сколько настроек есть и какую пропорцию вы используете в среднем запросе, это может быть или не быть хорошим подходом.