如何在CakePHP中将数据库记录从控制器传递到视图
我在CakePHP中启动了一个项目。我没有这方面的经验,我的大部分经验是与Symfony2 现在,我已经构建了一个视图文件、一个控制器和一个模型,用于该项目及其数据库。在一个控制器中,我希望将一条记录从数据库传递到视图,以便在主页上使用。但是,由于出现以下错误,我无法传递记录: 注意(8):未定义变量:content[APP\View\Contents\home.ctp, 第42行] 这是我的控制器代码:如何在CakePHP中将数据库记录从控制器传递到视图,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我在CakePHP中启动了一个项目。我没有这方面的经验,我的大部分经验是与Symfony2 现在,我已经构建了一个视图文件、一个控制器和一个模型,用于该项目及其数据库。在一个控制器中,我希望将一条记录从数据库传递到视图,以便在主页上使用。但是,由于出现以下错误,我无法传递记录: 注意(8):未定义变量:content[APP\View\Contents\home.ctp, 第42行] 这是我的控制器代码: function home() { $content = $this->Co
function home() {
$content = $this->Content->query("SELECT title, content FROM content WHERE id = 1;");
$this->set('pagecontent',$content);
}
下面是我用来在视图文件中显示数据的代码:
<?php $content['content']; ?>
我错过了什么
编辑: 我已将
更改为
,与Ross答案中概述的更改一致。但是,现在出现了以下错误:
注意(8):未定义索引:Content[APP\View\Contents\home.ctp,第行
43]
我使用了
,这是它的输出:
app\View\Contents\home.ctp (line 42) Array (
[pagecontent] => Array
(
[0] => Array
(
[content] => Array
(
[title] => <h1>This is a title</h1>
[content] => <p>this is some test text</p>
)
)
)
)
app\View\Contents\home.ctp(第42行)数组(
[pagecontent]=>数组
(
[0]=>阵列
(
[内容]=>数组
(
[标题]=>这是一个标题
[内容]=>这是一些测试文本
)
)
)
)
$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>
现在应该可以了
另一种方法是仅通过数组索引访问数据:
echo$pagecontent[0]['content']['title']
这可不像“蛋糕”那样
展开=query()
以与使用find
或read
不同的结构返回数据。你也可以用其他方法来做到这一点
$this->Content->id = 1;
$this->set('pagecontent', $this->Content->read(array('title', 'content')));
也应该是有效的。我得到了相同的错误,尽管我已经修改了它以满足您的答案。我已将更多信息上传到我的问题中。感谢您这么做并解释为什么它不起作用:)
$this->Content->id = 1;
$this->set('pagecontent', $this->Content->read(array('title', 'content')));