$this->set('pagecontent',$content);
- здесь вы устанавливаете переменные представления.
Вы пытаетесь получить доступ к переменной с именем $content
, хотя на самом деле она хранится как $pagecontent
.
Также, основываясь на соглашениях Cake, ключ content
на самом деле должен быть Content
, поэтому ваш вывод, вероятно, должен быть:
<h1><?php echo $pagecontent['Content']['title']; ?></h1>
<div class="page-content">
<?php echo $pagecontent['Content']['content']; ?>
</div>
Вы всегда можете сделать debug($this->viewVars);
, чтобы точно узнать, к чему у вас есть доступ.
Просмотр выходных помогает; ошибка связана с тем, как торт возвращает данные.
Вероятно, это связано с тем, что вы используете query()
вместо find()
или read()
. (также объясняет, почему ваша клавиша content
является строчной - query()
использует имя таблицы , а не название модели.
Попробуйте:
$content = $this->Content->find('first',
array('fields' => array('title', 'content'),
'conditions' => array('Content.id' => 1)
)
);
$this->set('pagecontent', $content);
// view
echo $pagecontent['Content']['title'];
echo $pagecontent['Content']['content'];
теперь должно работать.
Альтернатива - просто получить доступ к данным через индекс массива:
echo $pagecontent[0]['content']['title']
который не такой "торт", как.
для расширения = query()
возвращает данные в структуре, отличной от использования find
или read
. Есть и другие способы сделать это тоже.
$this->Content->id = 1;
$this->set('pagecontent', $this->Content->read(array('title', 'content')));
также должно быть действительным.