> 백엔드 개발 > PHP 튜토리얼 > 关于thinkphp中的model层的问题

关于thinkphp中的model层的问题

WBOY
풀어 주다: 2016-06-23 13:20:01
원래의
1105명이 탐색했습니다.

        用这框架用了一段时间了,但一直都只是用了view层和controller层,一直没有用过model层,有人知道这个model具体在实际开发中是干嘛的吗?
        


回复讨论(解决方案)

Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
通常模型对象负责在数据库中存取数据。

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();    }
로그인 후 복사
로그인 후 복사


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();    }
로그인 후 복사
로그인 후 복사

对滴,标准的mvc是这样。

能说下具体是如何进行封装到model里的吗,比如我上面的那段代码,谢谢

首先 MVC 并无标准,他只是反映了大多数人对事物的认知
其次 M、V、C 间并无明确的分工,不需要过于拘泥 M 还是 C

按照 MVC 的一般解释,网站开发中,你的工作都应该在 M、V 中完成,C 几乎没事可做(尤其是多入口架构)
现代框架中,M 充当了数据库操作的角色。实际上是将部分业务逻辑在 C 中完成

试试下面这样写看行不
action 代码:

 public function goodsPage(){       $goods=D('Goods');       $goods_info = $goods->foo();        $this->assign('info',$goods_info);        $this->display();    }
로그인 후 복사


在model文件夹下建立一个 GoodsModel.class.php 文件
代码如下:
<?phpclass 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;   }}
로그인 후 복사

假如你做一个  列表展示页  和一个   导出excel功能   
不写模型   相同的select数据 你得在俩个function里写俩次 
如果写了模型  俩个function中可以调用一个模型 
可以省很多事   少写很多代码   也方便以后的修改
和html 共用一个top.html   footer.html 是一个道理

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿