2016-07-08 2 views
3

최근에 멋진 Laravel Framework에 대해 알게되었지만 여전히 나에게 미스테리 인 쿼리 하나를 알고 싶습니다.기존 데이터베이스 연결 데이터베이스 변경 - Laravel

은 우리가 쉽게

 $users = DB::connection('mysql2')->select(...); 

을 사용하여 "데이터베이스 연결"을 변경 수 있습니다 알고 있지만 나는 여러 데이터베이스는 사용자의 요청에 따라 생성 등의 프로젝트를 진행하고있어 이러한 데이터베이스에 액세스해야 사용자 요청에 따라 동적으로.

거의 데이터베이스 구성 파일에 새 데이터베이스 연결 항목으로 모든 데이터베이스 항목을 입력 할 수 없습니다.

따라서 우리는 동일한 연결에서 데이터베이스를 동적으로 변경해야합니다.

예 :

우리가 "DB1"설정 파일에 정의 된데이터베이스 "TEST1"과 관련하여,

를 사용하는 경우 나는 동적

에 "TEST2"는 "TEST1"데이터베이스를 변경하는 방법이 필요합니다
+0

왜 여러 데이터베이스가 있습니까? –

+0

저는 여러 조직에 대한 단일 프레임 워크를 사용하고 있으므로 각 조직의 데이터를 고유 한 데이터베이스에 저장해야합니다. –

답변

1

은 아마 당신이 할 수 단순히 런타임에 데이터베이스 구성의 값을 변경하여 :

Config::set('database.connections.DB1.test1', 'test2'); 
+0

감사. 그래도 도움이 될 수 있습니다. –

1

"중앙"데이터베이스에 각 사용자의 데이터베이스 연결을 저장할 수 있습니다. 해당 데이터베이스를 쿼리하고 일치하는 연결 매개 변수를 찾은 다음 해당 매개 변수를 사용하여 사용자의 데이터베이스를 쿼리합니다.

멀티 테넌트 응용 프로그램도 비슷한 접근 방식을 사용합니다. 필자는 Laravel을 통해 멀티 테넌트 애플리케이션을 개발하기 위해 package을 만들었습니다. 이 패키지는 당신이 원하지 않는 설정 파일에 '세입자'가 정의되어 있어야합니다. tho 소스 코드를 살펴보십시오. 새로운 아이디어를 얻는 데 도움이 될 수 있습니다.

관련 문제