<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Config;
use Illuminate\Support\Facades\DB;
class changeDatabase
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
//拦截请求参数,切换数据库
$client = $request->header('appId') ?: $request->input('client');
//没有选择公司直接弹出
if(!$client){
return returnJson(50004);
}
if($client !== "Rebound"){
$database = 'wms_tenancy_'.$client;
DB::purge('mysql');//断开数据库
Config::set('database.connections.mysql.host','localhost');
Config::set('database.connections.mysql.port','3306');
Config::set('database.connections.mysql.database',$database);
Config::set('database.connections.mysql.username','root');
Config::set('database.connections.mysql.password','root');
//确保数据库重新连接了
DB::reconnect('mysql');
}
return $next($request);
}
}
}
laravel动态更改数据库
于 2021-11-25 11:56:04 首次发布