当前位置: 首页 > 知识库问答 >
问题:

Laravel更改数据库连接[重复]

罗翔
2023-03-14

当用户是管理员角色时,如何更改数据库连接?管理数据库包含其他用户不能访问的信息,并且要求数据库必须位于自己的服务器上。我目前有单独的管理员连接配置。

'mysql' => [
    'host'      => 'admin.psa44.localhost'
    'driver'    => 'mysql',
    'database'  => 'database',
    'username'  => 'root',
    'password'  => 'secretpassword',
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix'    => '',
],

我想,没有硬编码是在应用中,所以如何可以拉威尔做开关时,必要的?谢谢你的帮助。

共有1个答案

易琨
2023-03-14

您需要在appconfig中创建新的数据库配置规则。

'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';

}
 类似资料:
  • 问题内容: 我正在Laravel 5(.1)中创建一个应用程序,在该应用程序中需要连接到不同的数据库。唯一的问题是,它不知道必须连接到哪个数据库,因此无法在config中使用database.php。控制器负责使用动态给定的连接详细信息进行连接。 如何建立与数据库的新连接,包括使用DB类?(或者这可能) 提前致谢! 问题答案: 最简单的解决方案是在运行时设置数据库配置。Laravel可能希望从文件

  • 我正在构建一个需要连接2个数据库的应用程序。第一个是静态的,另一个是动态的。config/database.php类似于 模型代码就像 如果我提供静态连接详细信息,我可以连接多个数据库,但如果我提供动态连接详细信息,如 或 动态连接多个数据库而不影响应用程序性能的最佳方法是什么?

  • 我使用Laravel 5和我的数据库连接有问题: 这是我的database.php文件: 这是我的. env文件: DB_HOST=localhost DB_数据库=我的_场景 DB_USERNAME=root DB_PASSWORD=null 然而,当我运行“php artisan migrate”时,我得到了一个错误 [PDOException]SQLSTATE[HY000][1049]未知数

  • 我是拉威尔的新手,目前正在拉威尔的一个项目中工作。 当我在我的文件中使用'php工匠服务'来检查它是否工作/localhost,我得到了这个错误: (1/1)HttpException数据库连接失败! 在应用中。php第1014行 应用时- 在ScriptMint中中止时('399','数据库连接失败!')。php第31行 在ScriptMint- 在管道上- at XSP保护- 在管道上- 在T

  • 所以我有数百个数据库,我想根据我传递的值来改变使用什么数据库 例如,我有许多公司分支机构有branch_code(000,001,002,003等。高达200)。它们都有相同的表,但只是在不同的数据库中创建的。还假设只有DB Name不同。我的问题是,当有数百个数据库时,我如何访问不同的数据库?我应该动态更改. env文件吗?当用户选择另一个分支时,我应该创建一个改变连接的函数吗?如果是的话,怎么

  • 前言 数据库是 laravel 及其重要的组成部分,大致的讲,laravel 的数据库功能可以分为两部分:数据库 DB、数据库 Eloquent Model。数据库的 Eloquent 是功能十分丰富的 ORM,让我们可以避免写繁杂的 sql 语句。数据库 DB 是比较底层的与 pdo 交互的功能,Eloquent 的底层依赖于 DB。本文将会介绍数据库 DB 中关于数据库服务的启动与连接部分。