2013-06-18 2 views
0

저는 cakePHP에 상당히 익숙하며 간단한 웹 애플리케이션을 만들려고합니다.cakephp에서 다른 관련 모델의 데이터를 표시하는 방법은 무엇입니까?

3 가지 모델 : 속성, 작업 및 범주가 있습니다.

내 관계는 :

Category -> hasMany -> Property 
Operation -> hasMAny -> Property 

각 속성 카테고리 (CAT_ID)에 대한 외부 키를 가지며, 상기 (op_id)에 대한.

내가하고 싶은 일은 ID가 아닌 카테고리 및 작업의 이름 (각 테이블의 '이름'필드)과 함께 각 속성 (해당보기에서)을 표시하는 것입니다. 어떻게해야합니까?

UPDATE :

는 원하는 출력의 예는 다음과 같습니다

ID category operation description .... 

1  House  Sell  a house .... 

내가 지금 가지고있는 것은 '집'의 각각의 ID 년대되는

ID category operation description .... 

1  2   3   a house .... 

2, 3 (카테고리, cat_id) 및 '판매'(작업, op_id)

이것은 카테고리 모델의 코드입니다 :

class Category extends AppModel{ 
    public $hasMany = array(
    'Property'=>array(
     'foreignKey' => 'cat_id' 
    )); 
} 

감사합니다.

+0

나는 당신이하고 싶은 것을 정확히 이해하지 못합니다. 단일 쿼리에서 Category 및 PropertyOperation의 이름을 가져올 필요가 있습니까? – Ziemo

+0

예상 출력을 작성하고 모델 코드를 추가하십시오. –

+0

표시된 결과를 얻을 수있는 쿼리를 작성할 수 있습니까? – Ziemo

답변

0

해결책을 찾았습니다! 내가 생각했던 것보다 쉬웠다.

먼저 'hasMany'의 사용은 이상적이지 않았습니다.

class Property extends AppModel{ 
    var $name = 'Property'; 
    public $belongsTo = array(
     'Category' => array(
      'foreignKey' => 'idCat'   
     ), 
     'Operation' => array(
      'foreignKey' => 'idOp'    
     ) 
    ); 
} 
이제

마법 : 내가 한 일은 속성 모델의 관계 "belongsTo를"사용하는 것이었다 나는 PropertiesController에서) (A 발견 할 때마다, 내가있어하는 2 차원 배열 인을하는 속성 데이터가 속한 테이블의 데이터와 함께 포함됩니다. :

Array 
(
    [Property] => Array 
     (
     [id] => 1 
    ) 
[Category] => Array 
    (
     [id] => 2 
     [name] => House 
    ) 
[Operation] => Array 
    (
     [id] => 3 
     [name] => Sell 
    ) 

) 이제 예를 들어 뷰, 대신, [ '속성'] [ 'idCat']에 난 그냥 사용 [ '카테고리'] [ '이름'] 모든 것이 작동합니다.

도움 주셔서 감사합니다.

피씨 : 원어민이 아닌 오해가 생겨서 죄송합니다.

0

속성 (ID, 이름, CATEGORY_ID, 수 operation_id)

카테고리 (ID, 이름)

작업 (ID, 이름)

당신은 재산에 발견 할 때 재귀 = 1 또는 2가있는 테이블은 모든 관련 데이터를 자동으로 가져옵니다.

관련 문제