首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 5.4中的变更数据库

Laravel 5.4中的变更数据库
EN

Stack Overflow用户
提问于 2018-04-02 01:10:21
回答 1查看 2K关注 0票数 1

我有一个正在工作的代码,但是当我切换到不同的URL时,我创建的连接返回到默认连接时,我遗漏了什么?

代码语言:javascript
复制
Route::get('/change-database', function () {
    DB::purge('mysql');

    Config::set('database.connections.test.driver', 'mysql');
    Config::set('database.connections.test.host', 'localhost');
    Config::set('database.connections.test.username', 'root');
    Config::set('database.connections.test.password', '');
    Config::set('database.connections.test.database', 'fdis_two');

    Config::set('database.default', 'test');
    DB::reconnect('test');


    $connection= DB::connection()->getDatabaseName();
    return $connection;
});

它正在工作,但在进入不同的路由后,它会返回到默认连接。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-02 09:57:44

它正在工作,但在进入不同的路由后,它会返回到默认连接。

这是因为,您的应用程序的所有配置都存储在其中,因此不会更改.env文件。

在改变..。

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbName
DB_USERNAME=username
DB_PASSWORD=password

在同一路由中,尝试编辑.env文件,然后尝试访问所有其他路由。

在访问/change-database路由之后,它应该反映:

代码语言:javascript
复制
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=newDbName
DB_USERNAME=newUsername
DB_PASSWORD=newPassword

否则,您将不得不修改应用程序的代码,以匹配如下所示:文档

当使用多个连接时,您可以通过DB外观上的连接方法访问每个连接。传递给connection方法的名称应该对应于config/database.php配置文件中列出的连接之一: $users =DB::connection(‘foo’)->select(…);

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49604154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档