Cakephp 在单独的控制器和视图上查看控制器和视图中的内容

Cakephp 在单独的控制器和视图上查看控制器和视图中的内容,cakephp,cakephp-2.0,cakephp-2.1,cakephp-2.3,Cakephp,Cakephp 2.0,Cakephp 2.1,Cakephp 2.3,我有一个 Controller/PostsController.php Model/Post.php View/Posts/Index.ctp 如果有人学习过cakephp博客教程,我已经完成了。 任何人谁没有,它基本上是一个网站,让你添加标题和评论。很像一个论坛 现在我已经设置好了,但我想包括一个名为home的新页面。在这个页面上,我不会展示我创建的论坛,而是在一个更小的容器中 我不确定如何将帖子视图添加到新的控制器/模型/视图 这是PostsController.php: class Po

我有一个

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 View/Homes/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>
编辑//EDIT//EDIT

是的,我现在通过添加 $this->render('/Abouts/index'); 给我的邮差

但现在我得到一个错误,说 未定义的变量:posts[APP\View\Abouts\index.ctp,第12行]


我不知道如何在我的abouts视图中定义这些

在“abouts”操作中,您将执行与索引中相同的操作:

$this->set('posts', $this->Post->find('all'));
站点说明:看来再次阅读博客教程进行复习是值得的。我相信这类事情已经涵盖得相当透彻。

来自cakephp书籍

许多应用程序都有小的表示代码块,需要在页面之间重复,有时在布局中的不同位置重复。CakePHP可以帮助您重复网站中需要重用的部分。这些可重用的部件称为元素。广告、帮助框、导航控件、额外菜单、登录表单和标注通常作为元素在CakePHP中实现。图元基本上是一个小视图,可以包含在其他视图、布局甚至其他图元中。元素可用于使视图更具可读性,将重复元素的呈现放置在其自己的文件中。它们还可以帮助您在应用程序中重用内容片段


因此,出于您的目的,请使用元素,更多信息

您为什么要这样做?因为我有一个带有元素的帖子页面,但在其他页面上,我无法将它们显示在一个小容器中,然后我可以编写一些我自己的代码来显示最近的前3个,或者任何其他页面。我是cakephp新手,所以我不知道怎么做