Laravel 将数据库键值对放到全局config中

阅读 (45)
将数据库查询键值对放到config中,通过config('xxx')形式查询值

情景:目前有一张config表,有两个字段: name, value

需求:想通过系统方法 config 根据name值value值

官方文档中对于config方法的描述:

上面可以看出,可以动态设置配置变量,通过 config(['name' => $value]);的形式设置

实现:AppServiceProvider boot()中添加config查询结果,并遍历,循环添加到config中

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use App\Models\Config as ConfigModel;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {
        //
    }

    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        foreach (ConfigModel::all(['name', 'value']) as $config) {
            config([$config['name'] => $config['value']]);
        }
    }
}

全局使用:

config('xxx');  //xxx 是数据库中的name值

 

更新于:2020-09-11 17:08:19
返回顶部