2010-06-19 4 views
0

와 모델 페이지를 매기는 내가 세 개의 테이블이 : 다음과 같은 협회CakePHP의 여러 협회

와 단위, 제공 및 에이전트
  • 단위 hasMany의 내가 단위 테이블을 얻을 페이지를 매기는 경우
  • 제공 belongsTo를 에이전트

을 제공 모든 유닛과 모든 유닛에 해당하는 모든 오퍼는 제공하지만 에이전트가 속한 것은 아닙니다. 예 :

- Unit1 
    - offer1 
    - offer2 
- Unit2 
    - offer1 
    - offer2 
    - offer3 

내가 이런 걸하고 싶지 :

- Unit1 
    - offer1 
    - agent1 
    - offer2 
    - agent2 
- Unit2 
    - offer1 
    - agent1 
    - offer2 
    - agent2 
    - offer3 
    - agent3 

어떻게 그것을 할 수 있습니까?

답변

0

가장 쉬운 방법은 페이지를 호출하기 전에 모델의 순환을 늘리는 것입니다.

$this->Unit->recursive = 1; //or more 

동일한 모델을 두 번 호출 할 수 있으므로주의해야합니다. 여기에 추가 조언 : 사용하기 전에 불필요한 모델의 바인딩을 해제하십시오. 다시 말하지만, 앱이 느려질 수 있으므로 매우 신중해야합니다.

0

Containable 비헤이비어를 사용하면 문제가 해결됩니다. 나는 결코 재귀 적 (recursive)을 사용하지 않는다.

또는 관심있는 테이블에서 데이터베이스보기를 만드는 것이 도움이 될 수 있습니다. 이렇게하면 페이징이 훨씬 간단 해지고 필요한 데이터를 정확히 지정할 수 있습니다 (불필요한 데이터 전송을 피할 수 있습니다).