Bu şekilde olabilir diye düşünüyorum ama kesin bir deneme yapmadığım için bir şey diyemiyorum.
Schema::table('users', function (Blueprint $table) {
$table->string('database_name')->nullable();
});
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
class DynamicDatabaseConnection
{
public function handle($request, Closure $next)
{
if (auth()->check()) {
$databaseName = auth()->user()->database_name;
if ($databaseName) {
Config::set('database.connections.dynamic_mysql', [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'database' => $databaseName,
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]);
DB::setDefaultConnection('dynamic_mysql');
}
}
return $next($request);
}
}