配置 .env 文件
/* 这部分是默认的数据库设置 */
DB_CONNECTION=mysql
DB_HOST=xxx.xxx.xxx.xxx
DB_PORT=3306
DB_DATABASE=default_db_name
DB_USERNAME=default_username
DB_PASSWORD=default_password
/* 这部分是新增的数据库设置 */
DB_HOST_NEW=xxx.xxx.xxx.xx
DB_PORT_NEW=3306
DB_DATABASE_NEW=new_db_name
DB_USERNAME_NEW=new_db_username
DB_PASSWORD_NEW=new_db_password
配置 \config\database.php 文件
/* 这是默认的设置 */
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
/* 这是需要新增加的设置内容,使用 .env 新增的内容 */
'mysql_new' => [
'driver' => 'mysql',
'host' => env('DB_HOST_NEW', 'localhost'),
'port' => env('DB_PORT_NEW', '3306'),
'database' => env('DB_DATABASE_NEW', 'forge'),
'username' => env('DB_USERNAME_NEW', 'forge'),
'password' => env('DB_PASSWORD_NEW', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
使用
Schema
在各种 Schema Builder 中使用,可以使用 Schema facade 类来连接任意想要连接的数据库,只需要使用 connection() 方法即可,如 migration 文件中应用:
Schema::connection('mysql_new')->create('some_table', function($table)
{
$table->increments('id'):
});
Query
在 Query Builder 类中也是使用 connection() 方法选择数据库即可:
$users = DB::connection('mysql_new')->select(...);
Eloquent
1 这是连接默认数据库的 model 文件,直接使用表即可:
// \app\Models\Users.php
class Users extends Model
{
// 数据库 'default_db_name' 中的 users 表
protected $table = "users";
}
2 这是需要连接新增的数据库的 model 文件,使用 $connection 属性进行数据库关联:
// \app\Models\NewUsers.php
class NewUsers extends Model
{
// 先连接新的数据库设置(config\database.php 新增的字段名)
protected $connection = 'mysql_new';
// 数据库 'new_db_name' 中的 users 表
protected $table = "users";
}
然后在其他类文件中引用该 model 文件即可。
另外还可以在控制器中,运行程序的时候,通过 setConnection 方法定义连接:
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?