Я пытаюсь сделать так, чтобы, когда я выполняю $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'), и он дает мне данные темы, затем данные сообщения для каждого сообщения в теме и данные пользователя для каждого сообщения в Тема (соответственно)..
Спасибо за любую помощь.