Я хочу изменить время выполнения подключения к базе данных после входа в систему. Я использую метод set Config Facade. Я знаю, что могу использовать его только для конструктора Middleware или Controller. Так что я создал этиПараметры параметров базы данных Laravel во время выполнения
Route::get("login", "[email protected]");
Route::group(["middleware" => "test"], function() {
Route::post("login", "[email protected]");
});
И тогда я создал "Test" Промежуточное вызывается после входа в систему отправить:
public function handle($request, Closure $next) {
// Validazione dei dati
$validator = Validator::make($request->all(), [
"codice_azienda" => "required",
"username" => "required",
"password" => "required"
]);
if ($validator->fails()) {
return redirect()->back()->withInput()->withErrors($validator);
}
// Verifico i dati immessi
$codice_azienda = $request->get("codice_azienda");
$username = $request->get("username");
$password = $request->get("password");
$objOperatore = new Operatore();
$cliente = $objOperatore->loginOperatore($codice_azienda, $username, $password);
if (empty($cliente)) {
throw new \App\Exceptions\LoginFailedException;
}
Config::set("DB_HOST", Crypt::decrypt($cliente->Server));
Config::set("DB_DATABASE", $cliente->NomeDB);
Config::set("DB_USERNAME", Crypt::decrypt($cliente->Username));
Config::set("DB_PASSWORD", Crypt::decrypt($cliente->Password));
$operatori = Operatore_Model::all();
\App\Http\Controllers\Log_Controller::debug($operatori, true);
return $next($request);
}
Но metoed все() из Operatore_Model не возвращает ничего
Журналы вернуть эту ошибку:
"[2017-02-16 16:44:52] local.ERROR: exception 'PDOException' with message 'SQLSTATE[42S02]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid object name 'Operatori'.' in C:\xampp\htdocs\dashboard\www\e730\vendor\laravel\framework\src\Illuminate\Database\Connection.php:323"
Я хочу использовать соединение с несколькими БД, по одному для каждого клиента.
Если я могу сделать предложение. Вы могли бы облегчить себе, если вы поместите эту логику в слушателя для события 'auth.login'. В этом случае вам не придется беспокоиться о том, чтобы выбрасывать «LoginFailedException» или validationg имена пользователей и пароль. – user3158900