在CakePHP中使用多个数据库表

时间:2012-04-16 15:32:04

标签: php cakephp cakephp-2.1 cakephp-appmodel

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

从派生控制器中获取这些方法

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

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

但你的一个问题很简单:

  

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

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

public $uses = array('List', 'all', 'models', 'you', 'need');