MVC模式中model和controller关系

来源:segmentfault.com 更新时间:2023-05-25 21:55

我喜欢CodeIgniter框架,但MVC的思想和Thinkphp是一样的。

Codeigniter官方框架文档Model部分有一句很精辟的评论:“什么是模型?——模型是专门用来和数据库打交道的PHP类”

个人做项目的时候,喜欢设计好数据表以后,就在Model把规划的几乎所有数据操作全都先写成一个个独立的方法,然后在Controller或View中调用Model。当然,后来出现的没有预想到的数据库操作,如果我预计绝对不会复用这个操作,我一般就在Controller里面直接写了。比如“管理员删除用户按钮”,很难第二个地方还要再用吧,但是如果需求变成了“用户也能删除自己”,那么我会找出原先的代码放回Model中。

不需要复用的数据库操作,我不太喜欢“Model里面写一个函数,然后Controller再写一个”才实现某个功能,能Controller里面一步实现也是可以的。当然在企业里面,我这么做可能不符合规范

当然,写在Model中的函数,你写在Controller里调用也一样。因为,Codeigniter也说:“如果你不喜欢Model,你可以选择不用,没什么好与不好的……”