繁体   English   中英

如何从数据库数组中检索数据设置以在Laravel 5中具有全局访问权限

[英]How to retrieve data settings from database array to have globally acces in Laravel 5

如何从数据库表中检索全局设置? 我知道如何在像这样的数组中创建全局设置:path:

app/config/settings.php

<?php
return array(
        'admin_email' =>'mail@shabeebk.com',
        'admin_name' =>'Admin',
);

并在控制器中:

$cvalue = Config::get('settings.admin_name');

我想达到相同的效果,但是这次数据是从表设置接收的

$data = Settings::get();

以数组形式返回并具有全局访问权限。

您可以通过多种方式完成此操作,这里有两种选择。

选项1:预加载

在ServiceProvider boot()方法(可能是AppServiceProvider )中,您可以轻松地将所有数据库设置加载到config中:

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')

选项2:按需查询

或者,您可以在Settings模型上编写一个get()方法来提供类似的行为:

public static function get($key, $default = null)
{
    if($match = self::where('key', $key)->first()) {
        return $match->value;
    }

    return $default;
}

现在您可以全局使用Settings::get('foo')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM