所有数据库表的模型类

时间:2010-12-29 13:12:54

标签: cakephp

是否有必要为CakePHP中的每个数据库表创建一个模型类?

是否需要为每个模型类设置一个控制器?

1 个答案:

答案 0 :(得分:6)

  

是否需要有模型类   对于cakephp中的每个数据库表?

一般来说,是的。如果您希望检索,修改或删除特定表中的数据,那么CakePHP的方法是为该特定表创建模型并使用内置方法。例外情况是:

  • 连接表:如果连接表非常简单,则无需为它们创建模型。
  • 如果由于某种原因您不想为几个表创建模型,并使用其他模型的query函数来访问它们。

相反:您可以拥有没有表格的模型,这对于验证表单非常有用。我从来没有发现自己拥有的模型数量少于我拥有的表数(减去简单的连接表)。

  

是否需要一个控制器   对于每个模型类?

不,不是。虽然MVC模式规定每个模型都应由其自己的控制器操纵,但有时单个控制器处理多个模型会使代码更简单。一个示例是拥有用户模型, hasOne 个人资料 hasMany 地址 。您可以操纵UsersController

中的所有3个模型
class UsersController extends AppController {
    var $uses = array('User', 'Profile', 'Address');

    function edit_profile() {
        ...
    }

    function change_address() {
        ...
    }
}

始终使用MVC作为指导原则。如果你偏离架构太多,事情很容易就会崩溃。但是,最终,干净,有组织和有效的代码才是最重要的。 :)

HTH。