我有一个
Controller/PostsController.php
Model/Post.php
View/Posts/Index.ctp
如果有人关注了cakephp博客教程我已经完成了。 任何人都没有,它基本上是一个允许你添加标题和评论的网站。就像一个论坛。
现在我有了这个设置,但我想要包含一个名为home的新页面。在这个页面上,我不会在一个较小的容器中显示我创建的论坛。
我不确定如何将帖子的视图添加到新的控制器/模型/视图。
这是PostsController.php:
class PostsController extends AppController {
public function index() {
$this->set('posts', $this->Post->find('all'));
}
}
这是View / Posts / index.ctp
<table>
<tr>
<th>Id</th>
<th>Title</th>
<th>Actions</th>
<th>Created</th>
</tr>
<!-- Here's where we loop through our $posts array, printing out post info -->
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo $post['Post']['id']; ?></td>
<td>
<?php
echo $this->Html->link(
$post['Post']['title']
);
?>
</td>
<td>
<?php echo $post['Post']['created']; ?>
</td>
</tr>
<?php endforeach; ?>
</table>
因此,如何将相同的帖子包含在新的控制器和视图中,让我们说:
HomesController.php 视图/院/ index.ctp
EDIT // // EDIT EDIT
对,我现在通过添加成功完成了一半 $这 - &GT;呈现(&#39; / Abouts /索引&#39); 到我的PostsController
但现在我得到一个错误说 &#34;未定义的变量:帖子[APP \ View \ Abouts \ index.ctp,第12行]&#34;
我不确定如何在我的约会视图中定义这些
答案 0 :(得分:1)
在&#39; abouts&#39;行动,你做的事与你在索引中所做的一样:
$this->set('posts', $this->Post->find('all'));
网站注意:似乎值得您花时间再次浏览博客教程以进行复习。我相信这种事情已经非常彻底了。
答案 1 :(得分:0)
来自cakephp书籍
许多应用程序都有小块的演示代码,需要在页面之间重复,有时在布局中的不同位置。 CakePHP可以帮助您重复需要重复使用的网站部分。这些可重复使用的部件称为Elements。广告,帮助框,导航控件,额外菜单,登录表单和标注通常在CakePHP中作为元素实现。元素基本上是一个迷你视图,可以包含在其他视图中,布局中,甚至包含在其他元素中。元素可用于使视图更具可读性,将重复元素的呈现放在其自己的文件中。它们还可以帮助您在应用程序中重用内容片段。
因此,为了您的目的,使用元素,更多信息here