2013-08-22 6 views
0

도메인에 의존하는 CakePhp 1.2에 응용 프로그램이 있습니다. 일부 모델은 데이터베이스를 동적으로 변경해야합니다.일부 모델의 Cakephp 1.2에서 데이터베이스를 즉시 변경하십시오.

  1. 확인 도메인 :

    그래서 나는 쉬운 방법을 찾을 필요가있다.

  2. 일부 모델에 $ useDbConfig를 설정하면 데이터베이스 이 필요합니다.

database.php에이 기능 모델에 도메인에 바로 따라 데이터베이스를 변경할 수 있지만 :

public function __construct(){ 

if (strpos(env('HTTP_HOST'), 'site_one') !== false) { 

    // use site_one database config 
    $this->default = $this->site_one; 

} elseif (strpos(env('HTTP_HOST'), 'site_two') !== false) { 

    // use site_two database config 
    $this->default = $this->site_two; } 

} 

이 어떻게 모델에도 따라 데이터베이스를 변경할 수 있습니까?

미리 감사드립니다.

+0

체크 아웃 : http://stackoverflow.com/questions/13223946/how-to-use-multiple-databases -dynamically-for-one-model-in-cakephp – Alvaro

+0

당신은 업데이트 할 수 있습니까? –

답변

0

코드를 사용했지만 변경되지 않은 모델에 대해 추가 데이터베이스 구성을 사용하면 어떻게됩니까? 이 추가 데이터베이스 구성은 게시 한 기능에 의해 변경되지 않습니다. 변경하지 않으려는 모델의 경우

var $useDbConfig = 'static'; 

또는 추가하지 않는 데이터베이스 구성의 이름을 추가하십시오. 그런 다음 변경 사항이 적용되면 기본 구성을 사용하지 않습니다.

var $default = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => '', 
    'database' => 'first-database-name', 
    'prefix' => '', 
); 

var $otherdatabase = array(
    'driver' => 'mysql', 
    'persistent' => false, 
    'host' => 'localhost', 
    'login' => 'root', 
    'password' => '', 
    'database' => 'other-database-name', 
    'prefix' => '', 
); 

및 모델에 database.php에서

+0

그것은 작동합니다! 놀랄 만한! 고마워요! 각 모델에서 변수 $ useDbConfig를 즉시 변경하려고했지만 할 수 없었습니다. –

+0

많은 포럼, 문서 등을 확인했지만이 솔루션을 찾지 못했습니다. –

0

쓰기

class Modelname extends AppModel { 

    var $name = 'Modelname'; 
    var $useTable = 'tablename from other-database'; 
    var $useDbConfig = 'otherdatabase '; 
    .......... .......... ......... 
+0

이것이 현재의 방법이지만 도메인에 따라 즉석에서 $ useDbConfig를 변경해야합니다. 그래서, 그것은 작동하지 않습니다. –