2012-08-26 5 views
0

저는 Cakephp 2.0에서 새로 도입되었지만 두 개의 테이블을보고 싶습니다. 레코드Cakephp 2.0 mysql query

hpsas : ciname, 위치, 상태 레코드
LDAPS : 나는 다음과 같은 테이블이 내가 가진

$this->Hpsa->query("SELECT `hpsas`.`ciname`, `hpsas`.`status`, `ldaps`.`ciname`, `ldaps`.`status` FROM `cmdb`.`hpsas`, `cmdb`.`ldaps` WHERE `hpsas`.`ciname` = `ldaps`.`ciname`;"); 

: ciname, 상태 내 컨트롤러에서

을 나는 다음과 같은 구문이 예상대로 다음 결과 :

'hpsas' => array( 
    (int) 0 => array(         
        'hpsas' => array( 
      'ciname' => 'lsrv8001', 
      'status' => 'live' 
     ), 
     'ldaps' => array( 
      'ciname' => 'lsrv8001', 
      'status' => 'indeployment'' 

올바른 Cakephp 2.0 구문으로 어떻게 모델 및 컨트롤러를 만들 수 있습니까?

+0

이것은 모호하고 광범위하게 보입니다. 당신은 더 구체적 일 수 있습니까? – BenOfTheNorth

+0

Cakephp에서 모델과 컨트롤러를 사용하여이 쿼리를 만드는 방법을 알려 드리겠습니다. 결과는 위의 결과와 같아야합니다. – DenVer

+0

모델을 올바르게 연결 했습니까? hasMany, belongsTo 및 hasAndBelongsToMany? –

답변

0

이미 수행 한 작업과 컨트롤러/모델 이름 지정 방법에 대한 확신이 없으므로 기본 아이디어를 이해하는 데 도움이되는 코드 샘플을 넣으십시오.

Hpsas 모델에서 "many to one"관계가 정의됩니다.

class Hpsas extends AppModel { 
    public $belongsTo = array(
     'uniqueAlias1' => array(
      'className' => 'Ldaps', 
      'foreignKey' => 'ciname' 
     ) 
    ); 
/... 

"일대 다"관계가 정의됩니다.

class Ldaps extends AppModel { 
    public $hasMany = array(
     'uniqueAlias2' => array(
      'className' => 'Hpsas', 
      'foreignKey' => 'ciname' 
     ), 
    ); 
/... 

이제 가능성이 다음과 같은 결과를 얻을 것이다 Hpsass 컨트롤러에 코드 $this->Hpsas->find('all')을 경우를 수행
array(
    (int) 0 => array(
     'uniqueAlias1' => array(
      //hpsas table row with value 
     ), 
     'uniqueAlias2' => array(
      //ldaps table row where hpsas.ciname = ldaps.ciname 
     ) 
    ), 
     //rest hpsas table rows 
) 

난 당신이 원하는대로, 당신의 이름은 할 수 샘플에서 사용되는 별명에 대한 혼동하지 마십시오. 동일한 모델에 대한 배수 연결을 처리해야 할 때 편리합니다. 더 자세한 설명 된 샘플은 documentation에서 찾을 수 있습니다.