Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在CakePHP中将数据库记录从控制器传递到视图_Cakephp_Cakephp 2.0 - Fatal编程技术网

如何在CakePHP中将数据库记录从控制器传递到视图

如何在CakePHP中将数据库记录从控制器传递到视图,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,我在CakePHP中启动了一个项目。我没有这方面的经验,我的大部分经验是与Symfony2 现在,我已经构建了一个视图文件、一个控制器和一个模型,用于该项目及其数据库。在一个控制器中,我希望将一条记录从数据库传递到视图,以便在主页上使用。但是,由于出现以下错误,我无法传递记录: 注意(8):未定义变量:content[APP\View\Contents\home.ctp, 第42行] 这是我的控制器代码: function home() { $content = $this->Co

我在CakePHP中启动了一个项目。我没有这方面的经验,我的大部分经验是与Symfony2

现在,我已经构建了一个视图文件、一个控制器和一个模型,用于该项目及其数据库。在一个控制器中,我希望将一条记录从数据库传递到视图,以便在主页上使用。但是,由于出现以下错误,我无法传递记录:

注意(8):未定义变量:content[APP\View\Contents\home.ctp, 第42行]

这是我的控制器代码:

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')));