попробуйте это
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;
в список пространств имен
Я полагаю, что вы пытаетесь скомпилировать main.cpp с помощью gcc, а не g++.
#include <string>
#include <stdio.h>
int main()
{
std::string bla;
bla = "BLA BLA";
printf("%s\n",bla.c_str());
return 0;
}
Если вы соберете приведенный выше фрагмент кода с помощью gcc, то получите ошибки, о которых вы упомянули. Если вы используете g++, то он собирается нормально, это имеет смысл, так как g++ убедится, что все нужные вещи собраны вместе при сборке C++.
Вам нужно связать ваш бинарный файл с libstdc ++. Вам необходимо явно указать это в командной строке, если вы используете gcc:
gcc -lstdc++ tmp.cpp
Если вы используете g ++, libstdc ++ будет связан по умолчанию:
g++ tmp.cpp