如何在 laravel 5.3 中创建自定义配置文件

How to do a custom config file in laravel 5.3

我正在尝试从数据库中获取值并传递给自定义 settings.php 文件,在 laravel 4 中,我可以从模型中设置值:$settings = Setting::find( 1);但是在 laravel 5.3 的 config 文件夹中它是 app 文件夹。 获取值并传递给 settings.php 文件的最佳方法是什么? 也许添加服务提供商?我怎样才能做到这一点?

class 设置服务提供商...

public function register()
{
    $settings = Setting::find(1);
    Config::set('settings.company', $settings->company);
    return $settings;
}

也许在 .env 中写入?但是如果用户想要更新这些值,我如何从用户界面更新 .env?

请帮忙! 提前致谢。

这是我在 middleware 中用来连接数据库的示例

我已经创建了 Config 中间件并在路由中使用它。就我而言,我有一个多租户应用程序,我相信它也会对您有所帮助。 例子是

创建名为 Config

的中间件
namespace App\Http\Middleware;
use App\Sites;
use Closure;

class config
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        $site_url = $_SERVER['SERVER_NAME'];

        $site = Sites::where('site_url',$site_url)->first();

        $config = array();        

        if(!is_null($site)){

            $config['id'] = $site["id"];
            $config['site_url'] = $site["site_url"];
            $config['theme'] = $site["theme"];
            $config['host'] = $site["host"];
            $config['db_name'] = $site["database"];
            $config['user'] = $site["user"];
            $config['password'] = $site["password"];
            $config['prefix'] = $site["prefix"];

        }else{
 //default values
            $config['id'] = "0";
            $config['site_url'] = "demo.local";
            $config['theme'] = "theme";
            $config['host'] = "localhost";
            $config['db_name'] = "dbname";
            $config['user'] = "username";
            $config['password'] = "password";
            $config['prefix'] = "tbl";           
        }    
        //dd($config);
        // \Session::put('config', $config);

        \Config::set('database.connections.mysql.host', $config['host'] );
        \Config::set('database.connections.mysql.database', $config['db_name'] );
        \Config::set('database.connections.mysql.username', $config['user']);
        \Config::set('database.connections.mysql.password', $config['password']);
        \Config::set('database.connections.mysql.prefix', $config['prefix']);

        \Config::set('database.connections.mysql.theme', $config['theme']);

        \DB::reconnect();

        return $next($request);
    }
}

现在在路由中,您要应用该配置的地方,请按照以下步骤操作

Route::group(['middleware' => 'config'],function (){
       Route::get('/', ['uses' => 'HomeController@page']);
});