是否有必要为CakePHP中的每个数据库表创建一个模型类?
是否需要为每个模型类设置一个控制器?
答案 0 :(得分:6)
是否需要有模型类 对于cakephp中的每个数据库表?
一般来说,是的。如果您希望检索,修改或删除特定表中的数据,那么CakePHP的方法是为该特定表创建模型并使用内置方法。例外情况是:
query
函数来访问它们。相反:您可以拥有没有表格的模型,这对于验证表单非常有用。我从来没有发现自己拥有的模型数量少于我拥有的表数(减去简单的连接表)。
是否需要一个控制器 对于每个模型类?
不,不是。虽然MVC模式规定每个模型都应由其自己的控制器操纵,但有时单个控制器处理多个模型会使代码更简单。一个示例是拥有用户模型, hasOne 个人资料和 hasMany 地址 。您可以操纵UsersController
:
class UsersController extends AppController {
var $uses = array('User', 'Profile', 'Address');
function edit_profile() {
...
}
function change_address() {
...
}
}
始终使用MVC作为指导原则。如果你偏离架构太多,事情很容易就会崩溃。但是,最终,干净,有组织和有效的代码才是最重要的。 :)
HTH。