Я видел другое ваше сообщение Элементы CakePHP не обновляют таблицу, так что у меня вроде есть идея вашей ситуации. Похоже, вы представляете комментарии с помощью своей модели публикации.
Вы хотите запрашивать данные из вашей модели Post в вашем UploadsController, верно?
Если ваша таблица комментариев называется comments
, вам необходимо убедиться, что она связана с вашей моделью Post. Cake автоматически связывает модели и таблицы базы данных, если они соответствуют соглашению об именах Cake. Но если они на самом деле разные, вы можете указать настраиваемую таблицу базы данных для своей модели Post:
<?php
class Post extends AppModel {
var $useTable = "comments" /*Or whatever you named your comments table*/
...
}
?>
Вы также должны убедиться, что между публикацией и загрузкой установлены ассоциации модели:
Post belongsTo Upload
Upload hasMany Post
Я заметил, что у вас есть:
Post belongsTo Upload
Upload hasAndBelongsToMany Post
Есть ли причина, по которой это HABTM? HABTM подразумевает, что одно и то же сообщение может принадлежать множеству разных загрузок. hasMany подразумевает, что сообщение может принадлежать только одной загрузке.
Наконец, теперь, когда ассоциации моделей настроены, вы можете получить доступ к связанным моделям в контроллере:
<?php
class UploadsController extends AppController {
...
function watch ($id = null) {
$this->Upload->id = $id;
$this->set('uploads', $this->Upload->read());
/* To get related comments (Posts) */
$related_comments = $this->Upload->Post->find('all', array(
'conditions' => array(
'Upload.id' => $id /* This condition makes it so only associated comments are found */
)
));
$this->set('comments', $related_comments);
}
...
}
?>
person
penguin egg
schedule
12.04.2012