2

私を助けてください。私はCakePHPの初心者です。データベースの関連付けがあります。ニュースレター hasAndBelongsToMany カテゴリ。hasAndBelongsToMany (HABTM) の代わりに hasMany_Through を試しました

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



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


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

私が試した NewsletterController で: find('all') ;

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

Newsletters とその多数の CategoryNewsletterShips のみを取得できます。カテゴリを取得するにはどうすればよいですか?

私が必要としているのは、ニュースレターとそのカテゴリです。

助けてくれてありがとう。

4

1 に答える 1

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'
                        ),
                    )
)));
于 2014-06-25T16:24:13.877 に答える