【问题标题】:Changing database name in config file在配置文件中更改数据库名称
【发布时间】:2020-07-06 09:14:15
【问题描述】:

我想更改bootstrap/app.php 中的配置数据库值。 我找到了执行此操作的函数:config(['database.default' => 'mysql2']) 但我有那个错误:Fatal error: Uncaught ReflectionException: Class config does not exist in C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Container\Container.php:779 Stack trace: #0

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(779): ReflectionClass->__construct('config') #1

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(658): Illuminate\Container\Container->build('config') #2

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Container\Container.php(609): Illuminate\Container\Container->resolve('config', Array) #3

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(759): Illuminate\Container\Container->make('config', Array) #4

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php(121): Illuminate\Foundation\Application->make('config', Array) #5

C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Foundation\helpers.php(280): app('config') #6

C:\xampp\htdocs\project\bootstrap\a in C:\xampp\htdocs\project\vendor\laravel\framework\src\Illuminate\Container\Container.php on line 779

我的 laravel 版本是 5.7。我尝试添加外观use Illuminate\Support\Facades\Config,但没有帮助。 如何正确执行?

【问题讨论】:

  • 您不需要触摸该引导文件,而且它不是这样做的正确位置...如果您正在编辑项目文件以更改数据库配置,为什么不只是编辑数据库的实际配置文件config/database.php?或者使用.env文件设置值
  • 因为我想更改数据库取决于子域。我发现 bootstrap/app.php 可以更改它,并且在我交换 .env 文件时它可以工作。编辑:我不想更改 .env 文件,因为我想使用配置缓存。
  • 没有引导程序不是这个地方......框架甚至还没有启动
  • 使用.env 文件并不能阻止您拥有缓存配置...您不能在配置文件之外使用env 辅助函数.. 仅此而已
  • 好的,那么在哪里修改它以及如何使用config(['database.default' => 'mysql2']) 函数,我只想知道?

标签: php laravel config


【解决方案1】:

这似乎是一个 x/y 问题。您正在寻求更改数据库名称的帮助,但您要解决的真正问题是根据子域动态选择数据库。

感觉您可能正在寻找一种干净的方式来进行多租户?我建议你从整体上仔细考虑这个问题。有许多软件包可以帮助解决这个问题,例如 https://docs.spatie.be/laravel-multitenancy/v1/introduction/ 。我建议您查看该项目和其他 laravel 多租户项目。即使您不直接使用其中之一,您也可以从中学到很多关于实现多租户的策略。

【讨论】:

    【解决方案2】:

    要更改您的数据库配置..您可以通过 .env 文件进行更改 无论你设置什么

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 2012-07-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多