2011-06-29 16 views
0

私は$ this-> Topic-> find( 'all')を実行するときに、関連するすべてのユーザーデータと関連するすべてのPostデータを取得します。問題は、今私がそれを行うことができないということです。CakePHP - アソシエーションの問題

今、私は$ this-> User-> find( 'all')を実行し、トピックデータとそのトピック内のすべての投稿を返します。私はこれが私のコードが行うべきことだと思っています。それは私がしたいことではありませんが、です。私の説明を許してください。私は実際にははCakePHPの団体で吸う。

Topic.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' 
    ) 
); 

} 

Forum.php

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

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

User.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->(「すべて」)を見つけ、それが私のトピックのデータを与え、その後、トピックの各ポストのためのポストデータ、およびユーザートピック内の各投稿のデータ(それぞれ)。

ありがとうございました。

答えて

0

#cakephp IRCチャネルのサバントのおかげで、私の問題が判明しました。私のモデルの名前は間違っています.. :)