使用单一的灵活模型

时间:2014-03-07 10:16:55

标签: php codeigniter crud

这次关于Mvc中M的快速问题(使用codeigniter,但问题是一般的)

假设我有几个模型负责访问我的数据库中的几个表,是否对制作一个可以处理所有内容的灵活模型感到不满?

特别是在php-codeigniter中,例如:

$this->MY_model->getByID($table,$ID)

因此,这个示例代码可用于获取我想要的任何表的ID,从而节省了我的时间,并且我能够重用我的大部分模型代码。

这当然可以进一步扩展

$this->MY_model->update($table,$info) as an example.

所以我的问题是,如果上述所有情况都可以,那么此类操作的“限制”在哪里?当然,我们不希望在这种类型的模型中有特定的东西,比如这种方法:

$this->MY_model->getAllActiveUsers()

我的基本方法是:

任何可以在多个表中使用的方法都应该在扩展模型中使用。 任何应该仅在一个表中使用的方法应该在它自己的模型中。

只是要明确我不是在寻找意见,而是想知道这些问题的标准方法是什么。(例如,想象一下有50个模型的应用程序,是否应该为所有50个模型编写CRUD?)< / p>

提前致谢!

1 个答案:

答案 0 :(得分:1)

对于大多数Codeigniter开发人员来说,你正在考虑的是非常标准的操作。如果你要在DB中做很多CRUD,那么将一组通用的CRUD方法添加到你的基础MY_model然后扩展它是有意义的。如果您在Google上进行搜索...您可能会为100多个设置了自己的基本模型的人获得结果,包括CRUD和大多数Codeigniter项目使用的其他常用方法......这里只是一对:

https://github.com/jamierumbelow/codeigniter-base-model

https://github.com/jenssegers/CodeIgniter-My-Model

  

应该为所有50个人写CRUD吗?

没有。您可以扩展基础模型并使用它的通用CRUD方法,它们有意义并且只是覆盖某些属性(表名)。然后,如果您需要更具体的内容,您可以按照建议在新模型中创建更多,更精细的方法。