コアビヘイビア containable

containable

  • モデルの$actsAsプロパティに指定しよう
<?php 
//app/Model/Topic.php  
class Topic extends AppModel {

     public $belongsTo = array('Category');
     public $hasMany = array('Comment');
//ここ!!!!!!!
    public $actsAs = array('Containable');
}  

<?php 
//app/Controller/TopicController.php  
class TopicController extends AppController {
     //Topicモデルのデータのみ取得
     public function index() {
           $this->Topic->contain();
           $data = $this->Topic->find('all');
       
     //Commentモデルのデータのみ取得  
           $this->Topic->contain('Comment');
           $data2 = $this->Topic->find('all');
       
      //CommentとCategoryのデータを取得  
           $this->Topic->contain('Category','Comment');
           $data3 = $this->Topic->find('all');

      // containオプションからの指定  
          $data4 = $this->Topic->find('all',[
                'contain' => 'Category'
           ]);
}

☆2階層目を指定できる。

   $this->contain([
        'Topic' => [
            'Comment' => [
                'SubComment'
            ]
        ],
        'Category' => [
            'Comment' => [
                'SubCommentl'
            ]
        ],
    ]);

自由にデータを取得できるね!!!!!