关于thinkphp中的model层的问题

_Red_Code_ 2016-01-04 10:52:23
用这框架用了一段时间了,但一直都只是用了view层和controller层,一直没有用过model层,有人知道这个model具体在实际开发中是干嘛的吗?
...全文
230 7 打赏 收藏 转发到动态 举报
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Red_Code_ 2016-01-04
  • 打赏
  • 举报
回复
引用 1 楼 jordan102 的回复:
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。
可我所有的数据库存取都在controller里完成了,比如下面controller里的代码,意思是要把下面的某些封到model里才正规?

    public function goodsPage(){
        $table_goods=M('goods');

        $goods_id=I('param.id');

        $info_where['id']=$goods_id;

        $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select();

        $this->assign('info',$goods_info);

        $this->display();
    }
一起混吧 2016-01-04
  • 打赏
  • 举报
回复
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。
如花alen 2016-01-04
  • 打赏
  • 举报
回复
假如你做一个 列表展示页 和一个 导出excel功能 不写模型 相同的select数据 你得在俩个function里写俩次 如果写了模型 俩个function中可以调用一个模型 可以省很多事 少写很多代码 也方便以后的修改 和html 共用一个top.html footer.html 是一个道理
一起混吧 2016-01-04
  • 打赏
  • 举报
回复
试试下面这样写看行不 action 代码:
 public function goodsPage(){
       $goods=D('Goods');
       $goods_info = $goods->foo();
        $this->assign('info',$goods_info);
        $this->display();
    }
在model文件夹下建立一个 GoodsModel.class.php 文件 代码如下:

<?php
class GoodsModel extends Model{
    public function foo(){
       $table_goods=M('goods');
 
        $goods_id=I('param.id');
 
        $info_where['id']=$goods_id;
 
        $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select();
       return $goods_info;
   }
}
xuzuning 2016-01-04
  • 打赏
  • 举报
回复
首先 MVC 并无标准,他只是反映了大多数人对事物的认知 其次 M、V、C 间并无明确的分工,不需要过于拘泥 M 还是 C 按照 MVC 的一般解释,网站开发中,你的工作都应该在 M、V 中完成,C 几乎没事可做(尤其是多入口架构) 现代框架中,M 充当了数据库操作的角色。实际上是将部分业务逻辑在 C 中完成
_Red_Code_ 2016-01-04
  • 打赏
  • 举报
回复
能说下具体是如何进行封装到model里的吗,比如我上面的那段代码,谢谢
一起混吧 2016-01-04
  • 打赏
  • 举报
回复
引用 2 楼 RedCode_ 的回复:
[quote=引用 1 楼 jordan102 的回复:] Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。 通常模型对象负责在数据库中存取数据。
可我所有的数据库存取都在controller里完成了,比如下面controller里的代码,意思是要把下面的某些封到model里才正规?

    public function goodsPage(){
        $table_goods=M('goods');

        $goods_id=I('param.id');

        $info_where['id']=$goods_id;

        $goods_info=$table_goods->where($info_where)->field('id,name,price,type,img,detail_img1,detail_img2,detail_img3,number,supply')->select();

        $this->assign('info',$goods_info);

        $this->display();
    }
[/quote]对滴,标准的mvc是这样。
相关推荐
课程介绍本套课程,大喵将带着大家手把手,编辑每一行代码,使用原生Javascipt及ES6的一些新特性,仿照目前国内非常流行的Vue框架的源码,开发构建一个属于你们自己的MVVM框架。让大家能够很清晰的学习及掌握,模板编译,数据绑定,响应式,文档碎片,观察者模式,发布订阅模式等等,这些Vue的核心知识点,都是怎么回事,它们之间有哪些关联,是如何进行双向数据绑定的等等。在使用vue2.x的核心Object.defineProperty构建完成框架后,大喵也会使用Vue3.0引入的数据劫持的Proxy新特性,来改造我们的MVVM框架,提升我们的框架性能。最终,大喵会手把手带着大家,从0开始配置webpack.config.js配置文件以及引入babel-loader,配置.babelrc文件,转换我们JS文件的的ES6语法,最终压缩输出我们的MVVM框架库文件。课程目录01 手把手搭建MVVM框架 课程介绍、02 文件结构及基础类创建、03 入口类DamiaoMvvm的实现、04 模板编译、05 元素节点解析编译、06 v-model 数据绑定逻辑梳理、07 v-model 数据绑定实现、08 模板文本编译逻辑梳理、09 模板文本渲染绑定、10 观察者Wather逻辑梳理、11 Wather 逻辑实现、12 Object.defineProperty()、13 defineProperty 小案例、14 observer数据劫持梳理、15 defineProperty数据劫持实现、16 发布订阅类实现、17 Proxy 介绍与概述、18 使用Proxy改造MVVM框架、19 使用Proxy实现响应式、20 webpack 打包配置、21 babel 配置及文件输出、22 Mvvm Proxy 框架打包、23 Mvvm 框架搭建课程总结MVVM框架介绍MVVM是 Model-View-ViewModel 的缩写。mvvm是一种设计思想。Model 代表数据模型,也可以在Model定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。在MVVM架构模式下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model,而Model 数据的变化也会立即反应到View 上。ViewModel 通过双向数据绑定把 View Model 连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

4,249

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告