在 Laravel 8 中,我尝试在两种情况下设置动态连接:
在这种情况下,登录后,我在中间件中调用一个方法:
public static function changeConnection($customerId)
{
$database = Database::where('customer_id', '=', $customerId)->first();
if (empty($database)) {
return null;
}
$connectionName = 'customer';
$config = Config::get('database.connections.' . $connectionName);
$config = [
'driver' => 'mysql',
'host' => $database->database_host,
'port' => $database->database_port,
'database' => $database->database_name,
'username' => $database->database_username,
'password' => $database->database_password
];
config()->set('database.connections.' . $connectionName, $config);
DB::purge($connectionName);
return $connectionName;
}
这很完美,连接也很完美。
local.ERROR: SQLSTATE[HY000] [2002] 没有那个文件或目录 (SQL: select ... is null) {"exception":"[object] (Illuminate\Database\QueryException(code: 2002): SQLSTATE[HY000] [2002] 没有这样的文件或目录 (SQL: select ... is null) at /app/vendor/laravel/framework/src/Illuminate/Database/Connection.php:671)
有什么想法吗?,我猜在一个工作中,因为它在控制台中运行,所以程序不同?
答案 0 :(得分:0)
Laravel one domain, multiple database detected by Session
几年前我遇到了同样的问题,这是我的解决方案,另外,如果您需要即时切换连接:
pred = model.predict(img_tensor.reshape(-1, 28, 28, 3))