工作的时候遇到了这个需求,随便记录下喵~
用的方法是写个模型来切换,在需要用到这个数据库的时候载入模型就可以啦
这个方法在仅有某些地方需要切换数据库的时候比较方便
在模型里写需要切换的数据库~
model User.php
namespace app\XXX\model;
use think\Model;
class User extends Model
{
protected $connection = [
// 数据库类型
'type' => 'mysql',
// 数据库连接DSN配置
'dsn' => '',
// 服务器地址
'hostname' => '127.0.0.1',
// 数据库名
'database' => 'yomuki',
// 数据库用户名
'username' => 'root',
// 数据库密码
'password' => 'root',
// 数据库连接端口
'hostport' => '3306',
// 数据库连接参数
'params' => [],
// 数据库编码默认采用utf8
'charset' => 'utf8',
// 数据库表前缀
'prefix' => 'yomuki_',
];
}
控制器 Home.php
namespace app\XXX\controller;
use think\Db;
use app\home\model\User;
class Home
{
public function test(){
$a = DB::name('xxx')->select();//这个是当前数据库
$user = model('User');
$b=$user::name('xxx')->select();//这个是切换到模型里的数据库
}
}