2012-06-29 5 views
3

cakephp에서 사이트의 한 작업에서 다른 데이터베이스에 연결할 수 있기를 원합니다. 조치는 연결할 데이터베이스와 호스트를 판별합니다. cakephp 사용하기 1.3.Cakephp - 액션 내부에서 다른 데이터베이스/호스트에 연결

필자는 컨트롤러의 beforeFilter에서 db 연결을 변경할 수있는 곳을 보았지만 연결할 때 데이터베이스 및/또는 호스트를 찾을 수 있기 때문에이 작업을 처리 할 수 ​​있기를 원합니다. .

거기에 내 자신의 SQL을 쓸 수 있습니다. 나는 모델을 통과 할 필요가 없다. 간단한 SQL 문 추가/업데이트 만 수행하면됩니다.

답변

4

앱에서 쉽게 configure more than one database connection을 사용할 수 있습니다.

config/database.php에서 기존 $default 외에, 데이터베이스 구성을위한 또 다른 변수를 만들 :

var $otherDatabase = array(
    'driver' => 'mysql', 
    // more settings... 
); 

그런 다음 모델에서, $this->useDbConfig = 'otherDatabase' 또는 컨트롤러 $this->MyModel->useDbConfig = 'otherDatabase'에 설정합니다. 이후의 모든 데이터는 구성된 데이터베이스를 사용합니다.

+0

그래서 새 모델을 만들어 그 모델을 사용해야합니다. 만약 그 행동이 다른 연결을 설정하고 싶다면, 그 행동 내에서 그 모델에 변수를 전달할 수 있습니까? 즉 $ this-> NewModel-> db = ""; – madphp

+0

네, 물론 모델 인스턴스는 컨트롤러의 일부이기 때문에 액션 메소드에서 $ useDbConfig를 변경할 수 있습니다. 이를 포함하도록 답변을 업데이트했습니다. – pixelistik

+0

그래서, 이것이 당신에게 받아 들여질 수있는 대답이 되었습니까? – pixelistik

관련 문제