본문 바로가기
MySql

MySQL Laravel에서 동적으로 데이터베이스 연결 변경

by 베이스 공부 2020. 10. 24.
반응형

로그인 테이블과 각 사용자에 대한 해당 데이터베이스 설정이있는 마스터 데이터베이스가 있습니다. 로그인시 테이블에서 가져 오는 db 설정을 동적으로 변경해야합니다. DB 연결을 변경할 수 있지만 지속되지 않습니다.

Config::set("database.connections.mysql", [
'driver' => 'mysql',
"host" => $usr_host,
"database" => $usr_database,
"username" => $usr_username,
"password" => $usr_password,
...
]);

편집하다: 각 사용자가 앱에 등록 할 때 새 데이터베이스가 생성되므로 config / database.php에 정의 된 각 사용자에 대한 데이터베이스 연결이 없습니다.

 

해결 방법

 

사용자 로그인에 기본 데이터베이스를 사용하고 데이터베이스 이름에 대한 새 필드를 가질 수 있습니다. 그런 다음 다른 데이터베이스를 쿼리해야 할 때마다 db 연결을 변경할 수 있습니다.

이 같은

$someModel = new SomeModel;
$databaseName = "mysql2"; // Dynamically get this value from db
$someModel->setConnection($databaseName);
$something = $someModel->find(1);

여기에서 자세한 내용을 읽을 수 있습니다.


 

참조 페이지 https://stackoverflow.com/questions/46775265

 

 

반응형

댓글