0

$this->Topic->find('all') を実行すると、関連するすべてのユーザー データと関連するすべての投稿データがプルされるようにしようとしています。問題は、私が今それを行うことができないということです。

現在、$this->User->find('all') を実行しています。これは、トピック データと、そのトピック内のすべての投稿を返します。これは私のコードがそうするように指示していると思いますが、それは私が望むものではありません。私の説明を許してください..私はCakePHPの関連付けが本当に苦手です。

参照用の私のモデルは次のとおりです。

トピック.php

class Topic extends AppModel {
var $name = 'Topic';

var $actsAs = array('Containable');                
var $hasMany = array(
    'Post' => array(
        'className'     => 'Post',
        'foreignKey'    => 'topicid'
    )
);

var $hasOne = array(
    'User' => array(
        'className'    => 'User',
        'foreignKey'    => 'id'
    )
);    

var $belongsTo = array(
    'Forum' => array(
        'className'    => 'Forum',
        'foreignKey'    => 'id'
    )
); 
}

Post.php

class Post extends AppModel {
var $name = 'Post';
var $actsAs = array('Containable');
 var $hasOne = array(
    'User' => array(
        'className'    => 'User',
        'foreignKey'    => 'id'
    )
 ); 


 var $belongsTo = array(
    'User' => array(
        'className' => 'User',
        'foreignKey' => 'userid'
 ),
    'Topic' => array(
        'className'    => 'Topic',
        'foreignKey'    => 'topicid'
    )
 );

}

フォーラム.php

class Forum extends AppModel {
var $name = 'Forum';

var $hasMany = array(
    'Topic' => array(
        'className'     => 'Topic',
        'foreignKey'    => 'forumid'
    )
);
}

ユーザー.php

class User extends AppModel {
var $name = 'User';
var $actsAs = array('Containable');


var $hasMany = array(
    'ForumPost' => array(
        'className'     => 'ForumPost',
        'foreignKey'    => 'userid'
    ),
    'ForumTopic' => array(
        'className'     => 'ForumTopic',
        'foreignKey'    => 'userid'
    )
);
}

$this->Topic->find('all') を実行できるようにしたいのですが、トピック データ、トピック内の各投稿の投稿データ、トピック内の各投稿のユーザー データが得られます。トピック(それぞれ)..

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

4

1 に答える 1

0

#cakephp IRC チャンネルの savant のおかげで、私は自分の問題を発見しました。私のモデルの名前が間違っていました.. :)

于 2011-06-30T06:08:32.617 に答える