0

これはとても単純に思えますが、頭を壁にぶつけています。

私は単純な HABTM 関係 (Artists hasMany Artists) を持っており、いくつかのデータを保存しようとしています。

私は2つのテーブルを持っています : artist : (id , name, created, modified) artist_related: (id, artist_id, related_id)

私のコードは、models/artist.phpのようになります。

class Artist extends AppModel {
var $name = 'Artist';
var $hasAndBelongsToMany = array(        
    'Related' => array(            
        'className'     => 'Artist',
        'joinTable'     => 'artists_related',         
        'foreignKey'    => 'artist_id',
        'associationForeignKey' => 'related_id'
    )   
);  

function saveArtist($slug) {

    $data = array(
        'Artist' => array(
            'name' => 'Alicia Keys'
        ),
        'Related' => array(
            array(
                'name' => 'Mariah Carey'
            ),
            array(
                'name' => 'Beyoncé'
            )
        )
    );
$result = $this->saveAll($data);

saveAll() の結果として、artists テーブルに 1 行 (Alicia Keys) が挿入されます。関連するアーティストはそうではなく、結合テーブルには何も挿入されません。

私は何を間違っていますか?

4

1 に答える 1

0

私はあなたがやろうとしていることを理解できませんでした。一度このリンクをたどると、これが役立つかもしれません

http://book.cakephp.org/1.3/en/view/1034/Saving-Related-Model-Data-HABTM

于 2012-10-31T05:03:41.907 に答える