1

我对 Cake 很陌生,我不完全了解我应该如何组合内容。

我有 5-6 个静态页面,它们默认为页面控制器提供服务,因此它们通过链接 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'));

我是对的还是有其他更正确的方法?

4

2 回答 2

3

CakePHP 是一个 MVC 框架,代表:模型、视图、控制器。因此,基本上,您发出的每个请求都应该通过一个控制器,该控制器将大致执行以下操作:

  1. 如果请求需要来自 DB 的数据 -> 从模型中获取数据并将其传递给来自模型的数据的视图。
  2. 如果请求不需要额外的数据,则传递到适当的视图。

所以回答你的问题:是的,你需要有一个“新闻”控制器和一个“新闻”模型,并且一旦从模型中获取数据,就需要注册该控制器并将数据传递给视图。

于 2012-07-15T08:28:49.947 回答
1

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

It may be a better idea to make a dedicated NewsController, but that's up to you and how you want to organize your app. As you say, you can "alias" the URL pointing to the NewsController to something else if that makes more sense.

于 2012-07-15T10:45:43.570 回答