2011-08-18 3 views
1

... 나는CakePHP의 hasMany의 - belongsTo를 - hasMany의 광고</li> <li>광고 모델 - - hasMany의 "placads는"</li> <li>placads 모델 내가 좀 더 복잡한 시스템이 hasMany의 관계

  • 사용자 모델을 가지고 - belongsTo를 광고 및 장소
  • 장소 모델 - hasMany의의 placads

지금 나는이 같은 쿼리를 실행 :

$this->set(
     'ad', 
     $this->User->Ad->find(
      'all', 
      array(
       'conditions' => array('Ad.user_id' => $this->Auth->user('id')) 
      ) 
     ) 
    ); 

내가 * 마크에 "장소"없이이 무엇입니까

[0] => Array 
    (
     [Ad] => Array 
      (
       [id] => 1 
       [user_id] => 1 
       [name] => bota 
      ) 

     [Placad] => Array 
      (
       [0] => Array 
        (
         [id] => 1 
         [ad_id] => 1 
         [place_id] => 1 
         [count] => 10 
         *[Place] => Array 
         (
          info about place 
         )* 
        ) 

       [1] => Array 
        (
         [id] => 2 
         [ad_id] => 1 
         [place_id] => 2 
         [count] => 20 
         *[Place] => Array 
         (
          info about place 
         )* 
        ) 

      ) 

    ) 

내가이 * 마크에 쓴처럼 뭔가를 얻으려면 어떻게해야합니까?

미리 감사드립니다.

답변

4

사용 재귀 : 또는

http://book.cakephp.org/view/1063/recursive

$this->User->Ad->recursive = 2; // before find 

:

$this->User->Ad->find('all', 
    array(
     'recursive' => 2, 
     'conditions' => array('Ad.user_id' => $this->Auth->user('id')) 
    ) 
) 

수 2 예,하지만 귀하의 경우

2 대안에해야 :

사용 포스가 당신과 함께 동료 베이커 수 있음 http://book.cakephp.org/view/1323/Containable

+0

함유 성! :) containable은 멋진 기능입니다. –

관련 문제