【问题标题】:Change default database in laravel on runtime在运行时更改 laravel 中的默认数据库
【发布时间】:2018-12-29 09:01:31
【问题描述】:

我想在更改会话密钥时更改 laravel 中的默认数据库可以说,默认情况下会话密钥是 'ff' => '20' 并且默认数据库是 'default' => env('DB_CONNECTION', 'mysql') 现在当我从 @ 更改会话密钥的值时987654324@ to 'ff' => '21' 我想将所有后续请求的默认数据库更改为'default' => env('DB_CONNECTION', 'mysql2'),直到我不再更改会话密钥。

我正在使用 laravel 5.5

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 试图制作一个新的全局中间件并通过 DB::setDefaultConnection('DB_CONNECTION','mysql2'); 更改默认数据库。并在控制器构造()中包含中间件,但不工作
  • 检查这可能会帮助你stackoverflow.com/questions/42198046/…

标签: php laravel laravel-5.6


【解决方案1】:

使用来自 laravel 的 config() 助手。

要为默认数据库连接设置新配置,请执行以下操作:

config()->set('database.default', 'mysql2');

【讨论】:

  • 我试过这个但没有用,或者这个解决方案可能只适用于单个请求而不适用于所有请求
  • 如果你把它放在你的控制器中,上面提到的语句适用于单个请求,但是在你的中间件中使用它可以帮助你在通过提到的中间件之后的所有请求中执行相同的请求。或者,如果您只想对单个模块(控制器)执行相同操作,请将其放在控制器的构造函数方法中。
  • 非常感谢(Pusparaj),我真的欠你的,你的建议对我来说就像魔法一样。
猜你喜欢
  • 2020-08-19
  • 1970-01-01
  • 2013-09-29
  • 1970-01-01
  • 2014-12-10
  • 2016-05-29
  • 2012-04-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多