我小白,主要用thinkphp,我看了很多人分享的代码,他们把view和controller之间的分离很彻底,但controller和model之间的分离几乎没有,有的几乎不用model层。
大家怎么想?
我小白,主要用thinkphp,我看了很多人分享的代码,他们把view和controller之间的分离很彻底,但controller和model之间的分离几乎没有,有的几乎不用model层。
大家怎么想?
我喜欢CodeIgniter框架,但MVC的思想和Thinkphp是一样的。
Codeigniter官方框架文档Model部分有一句很精辟的评论:“什么是模型?——模型是专门用来和数据库打交道的PHP类”
个人做项目的时候,喜欢设计好数据表以后,就在Model把规划的几乎所有数据操作全都先写成一个个独立的方法,然后在Controller或View中调用Model。当然,后来出现的没有预想到的数据库操作,如果我预计绝对不会复用这个操作,我一般就在Controller里面直接写了。比如“管理员删除用户按钮”,很难第二个地方还要再用吧,但是如果需求变成了“用户也能删除自己”,那么我会找出原先的代码放回Model中。
不需要复用的数据库操作,我不太喜欢“Model里面写一个函数,然后Controller再写一个”才实现某个功能,能Controller里面一步实现也是可以的。当然在企业里面,我这么做可能不符合规范
当然,写在Model中的函数,你写在Controller里调用也一样。因为,Codeigniter也说:“如果你不喜欢Model,你可以选择不用,没什么好与不好的……”
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答715 阅读✓ 已解决
2 回答2.3k 阅读
1 回答687 阅读✓ 已解决
我对TP代码结构:
1、function中只能定义和具体业务无关的函数;
2、model中定义数据的‘增删改查’;
3、api中定义具体业务相关的逻辑代码
4、controller定义和前端的交互(数据验证、数据组装等)
5、Behavior中定义事务的前置/后置事件
希望能有帮助