Laravel修改数据库连接
Laravel修改数据库连接
这个问题已经有了答案:
当用户是管理员角色时,如何更改数据库连接?管理员数据库包含不能让其他用户访问的信息,而且要求数据库必须位于自己的服务器上。我目前有一个单独的管理员连接配置。
'mysql' => [ 'host' => 'admin.psa44.localhost' 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => 'secretpassword', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ],
我希望应用程序中没有硬编码,那么如何在必要时进行Laravel切换?感谢任何帮助。
admin 更改状态以发布 2023年5月24日
您需要在应用配置中创建新的数据库配置规则。
'mysql' => [ 'host' => 'admin.psa44.localhost' 'driver' => 'mysql', 'database' => 'database', 'username' => 'root', 'password' => 'secretpassword', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ], 'mysql_admin' => [ 'host' => 'admin.psa44.localhost' 'driver' => 'mysql', 'database' => 'admindatabase', 'username' => 'root', 'password' => 'secretpassword1', 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ],
我将其命名为mysql_admin。迁移时,使用
Schema::create('some_table', function($table)
创建表,使用
Schema::connection('mysql_admin')->create('some_table', function($table)
在其他数据库中创建该表。
要对该数据库进行查询,请执行以下操作
$admins = DB::connection('mysql_admin')->select(...);
您可以为模型定义连接
class AdminModel extends Eloquent { protected $connection = 'mysql_admin'; }