如何从数据库表中检索全局设置? 我知道如何在数组中创建全局设置,如下所示: 路径:
app/config/settings.php
<?php
return array(
'admin_email' =>'mail@shabeebk.com',
'admin_name' =>'Admin',
);
并在控制器中:
$cvalue = Config::get('settings.admin_name');
我希望获得相同的效果,但这次数据是从表格设置中接收的
$data = Settings::get();
以数组形式返回并具有全局访问权限。
答案 0 :(得分:1)
有多种方法可以实现这一目标,这里有两种选择。
在ServiceProvider boot()
方法中(可能是您的AppServiceProvider
),您可以轻松地将所有数据库设置加载到配置中:
Settings::get()->each(function($setting) {
// Assumes the columns in your DB are 'key' and 'value'
Config::set('settings.' . $setting->key, $setting->value);
});
现在,您可以全局抓取Config::get('settings.foo')
。
或者您可以在“设置”模型上编写一个get()
方法,该方法提供类似的行为:
public static function get($key, $default = null)
{
if($match = self::where('key', $key)->first()) {
return $match->value;
}
return $default;
}
现在,您可以全局使用Settings::get('foo')
。