调用Config :: set来更改Lumen 5.4中的数据库? (使用Eloquent)

时间:2017-08-24 00:32:29

标签: database laravel lumen

我在Lumen中有一个小应用程序,应该根据请求URL处理多个数据库。为了实现这一点,我首先创建了一个文件夹 / config / 和一个名为 /config/database.php 的配置文件。这是代码,我添加了一些注释,以显示我确实需要做什么。

<?php
return [
    'migrations' => 'home',
    'default' => 'home',
    'connections' => [
        // This is the default option and its needed to check if the "client" exists.
        'home' => [
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'home',
            'username'  => 'root',
            'password'  => 'password',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],    

        // When the client is found in the "home" connection, I'd like to continue with this database settings as default.
        'client' => [
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'client_', // There is one database per client which in the end will look like this: "client_******", so I have to add this using Config:set...
            'username'  => 'root',
            'password'  => 'password',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
    ],
];

我必须致电Config::set来更改这些设置,但它似乎无法在Lumen上使用。如何更改这些设置(默认数据库连接及其数据库

我希望有办法让这成为可能。非常感谢:)

2 个答案:

答案 0 :(得分:1)

我找到了解决方案。

要设置和编辑您的配置,请使用&#34; config&#34;数组作为参数的辅助方法。

示例:

config(['database.default' => 'your_connection']);

答案 1 :(得分:0)

在查询中,您可以按如下方式使用:

$ connectionClient = DB :: connections(&#39; client&#39;);  $ connectionHome = DB :: connections(&#39; home&#39;);

我希望有所帮助。