我应该如何使用CakePHP组合静态和非静态内容

时间:2012-07-15 08:08:19

标签: php cakephp

我是Cake的新手,我不完全明白我应该如何结合内容。

我有5-6个静态页面,它们默认为Pages Controller服务,所以它们是通过链接example.com/pages/page_name打开的,我只为它们制作了视图。

但是对于其中一些页面,我想添加CRUD功能。

For example:
  example.com/pages/index - static
  example.com/pages/news - have CRUD
  example.com/pages/about - static
  etc.

我如何看待此问题的解决方案: 1.为需要CRUD的页面制作模型+控制器,然后用

进行路由

Router :: connect('/ pages / news',array('controller'=>'news','action'=>'display'));

我是对的还是有一种不同的,更正确的方式?

2 个答案:

答案 0 :(得分:3)

CakePHP是一个MVC框架,代表:Model,View,Controller。所以基本上,你所做的每一个请求都应该通过一个控制器来完成以下操作:

  1. 如果请求需要来自DB的数据 - >从Model获取它,并使用模型中的数据将其传递给view。
  2. 如果请求不需要额外数据,请转到相应的视图。
  3. 所以回答你的问题:是的,你需要有一个'新闻'控制器和一个'新闻'模型,你需要注册该控制器并在从模型中获取数据后将数据传递给视图。 / p>

答案 1 :(得分:1)

将pagesController从cake / libs / controllers目录复制到app / controllers目录中,并像使用其他控制器一样使用它。您可以在其中创建一个function news来加载模型($this->loadModel()),或者通常只在PagesController中包含一个模型,就像任何常规控制器一样。

制作专用的NewsController可能是一个更好的主意,但这取决于您以及您希望如何组织您的应用。正如您所说,如果更有意义,您可以将指向NewsController的URL“别名”为其他内容。