2012-07-15 35 views
1

我对Cake很新,我不完全了解如何组合内容。我应该如何结合使用CakePHP的静态+非静态内容

我有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. 

我怎么看待这个问题的解决方案:对于网页需要CRUD 1.制作模型+控制器,然后用路由

路由器连接::('/页/新闻“,阵列('控制器'=>'新闻','行动'=>'显示'));

我是对的还是有不同的更正确的方法?

回答

1

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

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

+0

谢谢您的回答。 – user1327 2012-07-15 17:22:18

3

CakePHP是一个MVC框架,代表:Model,View,Controller。所以基本上,每一次请求都应该经过一个控制器,大致会做到以下几点:

  1. 如果请求从DB需要的数据 - >从模型得到它,并通过它来查看与模型数据。
  2. 如果请求不需要额外的数据,请传递给适当的视图。

所以要回答你的问题:是的,你需要有一个'新闻'控制器和'新闻'模型,你需要注册该控制器并将数据传递给视图模型。

+0

重定向可能不是这里最好的单词(可能被误认为是实际重定向) - 更好地使用“传递”。但除了 – mark 2012-07-15 09:21:05

+0

Tahnks以外,根据您的建议更改 – Tomer 2012-07-15 09:39:56

相关问题