CakePHP hasMany通过从tableS及其表中检索数据

时间:2012-09-19 07:43:17

标签: cakephp has-many-through

请帮帮我。我是CakePHP的新手。 我有一个数据库关联。 时事通讯有和明星到很多类别。 我试过hasMany_Through而不是hasAndBelongsToMany(HABTM)

//Newsletter
public $hasMany = array(
    'CategoryNewsletterShip'
    )
);



//Category
public $hasMany = array(
   'CategoryNewsletterShip'
       )
 );


//CategoryNewsletterShip
 public $belongsTo = array(
    'Newsletter', 'Category'
    )
 );

on NewsletterController我试过:find('all');

// NewslettersConroller
$newsletters = $this->Newsletter->find('threaded');
this->set('newsletters', $newsletters);
//----

我只能检索简报及其许多CategoryNewsletterShips。 如何检索他们的类别?

我需要的是时事通讯及其类别。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

可能为时已晚

您需要构建一个连接查询:

$this->Newsletter->find('all', array(
 'joins' => array(
                    array(
                        'table'         => 'category_newsletter_ships',
                        'alias'         => 'CategoryNewsletterShip',
                        'type'          => 'inner',
                        'conditions'    => array(
                            'Newsletter.id = CategoryNewsletterShip.newsletter_id'
                        ),
                    ),
                    array(
                        'table'         => 'categories',
                        'alias'         => 'Category',
                        'type'          => 'inner',
                        'conditions'    => array(
                            'Category.id = CategoryNewsletterShip.category_id'
                        ),
                    )
)));