dongzhiju0324 2017-01-24 18:26
浏览 39
已采纳

如何从数据库阵列中检索数据设置以在Laravel 5中进行全局访问

How to retrieve global settings from database table ? I know how to create global settings in array like this: path:

app/config/settings.php

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

and in controller:

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

I'd like to achive the same effect but this time data receive from table settings

$data = Settings::get();

return as array and have globally acces to them.

  • 写回答

1条回答 默认 最新

  • dongliangkeng1056 2017-01-24 18:38
    关注

    There are multiple ways you can accomplish this, here are two options that come to mind.

    Option 1: preload

    In a ServiceProvider boot() method (maybe your AppServiceProvider) you could easily load up all DB settings into config:

    Settings::get()->each(function($setting) {
        // Assumes the columns in your DB are 'key' and 'value'
        Config::set('settings.' . $setting->key, $setting->value);
    });
    

    Now you can just grab Config::get('settings.foo') globally.

    Option 2: query as-needed

    Or you could write a get() method on your Settings model that provides similar behavior:

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

    Now you can use Settings::get('foo') globally.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面