回复 stevenfung:TP6没有取消动态链接,只是使用方法变了,需要事先定义链接的参数在database.php的配置文件中,使用时只传connections里的key
$connection属性只接收database.php文件中connections里所定义的链接,是字符串,而不是整个数组,
因为vendor/topthink/think-orm/src/DbManager.php中的connect方法如下,第一个参数是接收字符串或null,配置的标识,而不是整个配置参数,如果为null会找到默认的标识
所以要使用动态链接最好事先在database.php定义好,不然只能Config::set动态修改database.php的配置内容
/**
* 创建/切换数据库连接查询
* @access public
* @param string|null $name 连接配置标识
* @param bool $force 强制重新连接
* @return ConnectionInterface
*/
public function connect(string $name = null, bool $force = false)
{
return $this->instance($name, $force);
}
下面是tp5.1的链接方法,接收的是整个配置参数,而不是标识
/**
* 连接数据库方法
* @access public
* @param array $config 连接参数
* @param integer $linkNum 连接序号
* @param array|bool $autoConnection 是否自动连接主数据库(用于分布式)
* @return PDO
* @throws Exception
*/
public function connect(array $config = [], $linkNum = 0, $autoConnection = false){
...
}