有时候我们需要在项目中使用多个数据库,那在tp5中多数据库该怎么配置呢。
首先我们先看一下原来的数据库配置是怎么使用的
tp5默认引入了一个数据库配置文件 database.php,一般我们会把数据库的连接配置写到这个文件中,在使用时就可以直接使用到该配置
Db::name('table_name')->select();
或者使用model
TableName::all();
在使用的过程中如果我们需要改变原配置中的某一项,我们也可以改变这些配置,以改变数据表前缀为例
Db::connect(['prefix' => 'tp5_']);
在使用model时在model文件中
protected $connection = [ "prefix" => "tp5_" ];
如果我们需要改变的配置比较多或者就是连接了另外一个数据库,那可以这样操作
首先在config.php配置文件中增加一个数据库连接配置
'database2' => include_once('database2.php')
然后新键database2.php文件复制database.php中的内容并修改相应的配置。当然也可以不创建文件,直接把配置写在config.php中。
在使用时
Db::connect('database2')->name('table_name')->select();
或者使用model,在相应的model文件中
protected $connection = "database2";
如果使用该配置项的数据库较多,可以创建一个公共的model,其它使用该配置的model继承该公共model即可。
除了上面两种方式以外也可以使用dsn方式。
有兴趣的可以看一下底层代码,写的很清晰。