2

我需要在我的网站主页上显示最新的新闻标题。主页是静态的,基于 Cake 的默认 PagesController。

我有我网站的新闻部分的表格、模型、控制器和视图。

在食谱中我发现

Controller::requestAction

方法,但它也说如果我不使用缓存,它可能会导致性能下降。

据我所知,我也可以在 AppController 本身中为我的所有(或部分)控制器创建所需的方法,但是如何将此方法与特定模型链接?

什么是实现我的目标的正确 OOP 方式?

4

2 回答 2

1

我不知道这是否是您的意思,但您可以通过添加访问与特定控制器无关的模型

public $uses = array('modelINeed');

在控制器的定义中。有关更多信息,请查看cakePHP 中的控制器CTRL + F并查找 "$uses", 。

我不建议将一个控制器加载到另一个控制器中。使用模型从数据库中检索数据!

于 2012-08-16T17:07:49.970 回答
1

如果您需要在控制器之间共享逻辑/数据,最好的办法是使用组件。将您的逻辑放入您的组件中,然后从您的每个控制器中简单地调用组件的方法。


编辑

要从您的组件访问您的模型,您可以简单地将其模型传递给您的组件的方法。例子:

零件

public function fetchMyData($model) {
    return $model->find('all');
}

控制器

$mydata = $this->ComponentName->fetchMyData($this->ModelName);
于 2012-08-16T17:11:50.240 回答