Проверьте свои контроллеры.
Если вы хотите отобразить информацию о комментариях в представлении сообщений, вы должны быть уверены, что контроллер сообщений может загружать данные.
Способ "CakePHP" заключается в определении отношений между моделями. Проверьте свои запеченные модели и посмотрите, есть ли что-то вроде этого:
class Post extends AppModel{
var $hasMany = array( 'Comment' );
}
Когда модели связаны друг с другом, ваш контроллер сообщений автоматически найдет объекты сообщений и связанные с ними объекты комментариев.
Например, эта строка:
$this->Post->findById( $id );
Будет производить что-то вроде этого:
Array
(
[Post] => Array
(
[id] => 42
[text] => Post1
)
[Comment] => Array
(
[0] => Array
(
[id] => 1
[post_id] => 42
[text] => Comment1
)
[1] => Array
(
[id] => 2
[post_id] => 42
[text] => Comment2
)
)
)
Хорошая документация на http://book.cakephp.org/
EDIT: добавление дополнительной информации после вашего комментария
Пока у моделей есть ассоциация, CakePHP будет извлекать данные соответствующим образом (если вы не установите Recursive => false
или не используете Containable
что, как я полагаю, не так).
Проверьте свой контроллер PostsController и посмотрите, как он загружает данные. Я предполагаю, что он делает что-то вроде следующего:
$post = $this->Post->findById( $id );
$this->set( compact( 'post' ) );
or
$this->data = $this->Post->findById( $id );
Проверьте, каким образом он хранит полученные данные, а затем получите доступ к этой переменной из представления.
Например, если он хранит данные в переменной с именем «$post», вы должны поместить в свое представление что-то вроде этого:
// output the 'text' field of the 'post' object
echo $post[ 'post' ][ 'text' ];
// loop through associated comments
foreach ( $post[ 'comment' ] as $comment ){
//output the 'text' field of a 'comment' object
echo $comment[ 'text' ];
}
По умолчанию CakePHP хранит множество деталей в массивах после извлечения данных. Хитрость заключается в том, чтобы знать иерархию данных и соответственно извлекать их из массива.
person
Farray
schedule
11.07.2011