如何在Laravel中进行身份验证之前动态更改数据库名称

时间:2018-12-11 09:01:05

标签: laravel laravel-5.4

我有一个申请。也就是说,在登录页面以及用户名和密码字段中,还有另一个字段公司选择下拉列表。像(comp1,comp2,comp3)。 基于公司选择,我想连接到该公司相关的数据库。 所有具有相同表的数据库。只是我想更改数据库名称并在整个应用程序中使用该数据库进行处理。

为此,我在BeforeMiddleware上创建了。在其中添加了以下代码。

namespace App\Http\Middleware;

use Closure;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Config;

class BeforeMiddleware
{
    public function handle($request, Closure $next)
    {

        $company_name = $_GET['company_name'];

        Config::set('database.connections.mysql.database', $company_name );
        DB::purge('mysql');
        DB::reconnect();

        if(DB::connection()->getDatabaseName())
        {

            echo "Connected sucessfully to database ".DB::connection()->getDatabaseName().".";

        }

        return $next($request);
    }
} 

在这里,所选数据库已成功连接,但是在我获得之后 FatalErrorException Call to a member function prepare() on null错误。

请让我知道如何在单个位置动态更改数据库名称

0 个答案:

没有答案