0

在我的应用程序中,我有许多控制器常用的方法。起初我将它们复制到控制器,然后我发现我必须将它们放在 AppController 中。所以我。通过“$this->commonmethod”从派生控制器中访问这些方法

我放入 AppController 的方法会创建不同类型的数据,因此我需要将它们放入数据库中的 4-5 个不同的表中。大多数表之间没有关系。

但是我的大多数控制器都会使用这些表来为它们获取相关数据。

(我查看了食谱中的示例,有关于博客、类别和标签的示例。表格之间有关系)

  1. 我应该将我的通用控制器代码放入插件或组件中吗?或者决策标准是什么?
  2. 是否可以使用来自控制器或组件的多个数据库表?
  3. 数据源或行为是否适合这种情况。

先感谢您

4

2 回答 2

1

最好的方法是(如果可能的话)重新设计数据库,因为在 cakephp 中一个好的数据库设计可以解决你一半的问题。如果这是不可能的,那么第二个是使用组件,使用这个组件你可以使用多个数据库表。

于 2012-04-16T15:38:04.897 回答
1

很难说最好的方法是什么,因为我们对数据库结构、控制器方法的作用以及它们的使用方式知之甚少。

但是您的一个问题非常简单:

是否可以使用来自控制器或组件的多个数据库表?

是的,这是可能的。只需为每个表创建一个模型(public $useTable = 'tablename如果 cake 无法从您的模型名称中自动检测到表名称,请使用)。然后,在AppController(考虑到你的代码会留在那里),使用这个:

public $uses = array('List', 'all', 'models', 'you', 'need');
于 2012-04-16T15:43:51.170 回答