Home  >  Q&A  >  body text

php - 业务逻辑放在controller层好还是model层好

一直觉得model层只用来操作数据,很多业务的处理放在controller,有种说法叫业务逻辑更适合放在model层,不知道哪种处理更好!
看了tp5.0,好像把业务逻辑放在了model,然后看了一些贴,好多说业务逻辑放在model更好.
链接:https://ruby-china.org/topics/19292

业务逻辑放在model有个问题:好多时候一个业务逻辑需要多个model的配合或者说调用,像CI,model与model之间的互相调用就比较困难,还有model调用model总觉得不好!

看了这个回答:
放在model层,如果需要多个model,则在controller调用,model的接口粒度做好就行了,controller只是负责调用几个model通信而已.

觉得业务逻辑放在model比较好:controller来处理接受参数,传递参数,包括从前端取,给前端,也包括从model取返回值,给model参数,这样controller很清楚的做一件事情(取,给,差不多就是路由,逻辑交个model).

感谢很多人的回答,对mvc有了更深的认识!

PHPzPHPz2721 days ago1413

reply all(14)I'll reply

  • ringa_lee

    ringa_lee2017-04-10 17:06:58

    TP5的文档建议放在模型

    http://www.kancloud.cn/manual/thinkphp5/122950

    reply
    0
  • 迷茫

    迷茫2017-04-10 17:06:58

    看你怎么架构你自己的程序,可以放在model层中,那么在设计方法的时候要考虑好拓展性和复用性。放在controller层的话,model层的数据操作就尽可能的原子级别操作。
    现在比较喜欢增添一个service层,那么的话可以让controller和model层看起来更好看一些

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 17:06:58

    标准的MVC是这样的。
    模型负责数据库读写还有各种业务逻辑。
    控制负责接收参数;过滤参数;实例化模型;调用方法;渲染模版输出,或者ajax,或者执行跳转等等。
    但是一旦项目赶进度。直接撸在控制器吧,后期慢慢搬代码。整合

    reply
    0
  • 阿神

    阿神2017-04-10 17:06:58

    放哪的都有 看设计者怎么考虑吧~ 如果还是乱就再抽象一层喽~

    reply
    0
  • Cancelreply