365bet亚洲版登录-bet官网365入口

365bet亚洲版登录拥有超过百间客房,bet官网365入口的文化历经几十年的传承和积淀形成的核心内容获得业界广泛的认可,365bet亚洲版登录是目前信誉最高的娱乐场所,同国内外几百家网上内容供应商建立了合作关系。

自定义基类

   ThinkPHP 提供了多少个 Model 类,供别的的 Model 举办继续。Model 类中是 MVC 中的模型类,它是调用 长久层 的上层类。以为那样描述难点重重,然而有何办法呢?然而,这么些 Model 不时无法满意我们的有的须求,因而大家要求自定义八个 Model 类出来,可是自定义的 Model 同样要连续 TP 提供的 Model 类,而把大家自定义的 Model 类作为我们项目中的 Model 基类。作者怎么认为本身在说绕口令,等等...作者有一点晕。

 

庸俗的必要

  在接纳 Java 的开源项目 JeeSite 时,养成了一个倒霉的习于旧贯,习于旧贯给每张表都增添create_by、create_date、update_by、update_date、remarks 和 del_flag 这么多少个字段。如若每张表都有那多少个字段,那么对每张表进行 insert 时都会对以上的字段举行安装,对每张表举办 update 时都会对中间有的字段打开改进,对每条记下实行 delete 时都其实是对 del_flag 字段展开置位。重复操作比很多,一些操作方法被校勘。那么,这时就要自定义三个协调的 Model 来作为项目标 基类 了,这一个 Model 就背负干上边作者说的这个事情了。

 

自定义二个 Model

  自定义叁个 Model,Model 中最少重新 TP 提供的 Model 中的 add、save、delete 和 select 方法。

  定义代码如下:

 1 <?php
 2 namespace AdminModel;
 3 use ThinkModel;
 4 
 5 /**
 6  * 项目中其他 Model 类的基类
 7  * 该类继承自 TP 提供的基类 Model
 8  */
 9 class BaseModel extends Model {
10     
11     /**
12      * 继承基类 Model 的 add 方法
13      * 自动插入 id create_by create_date update_by update_date del_flag
14      */
15     public function add($data='',$options=array(),$replace=false) {
16         
17         $data["id"]          = $this->getUuid();
18         $data["create_by"]   = "";
19         $data["create_date"] = date("Y-m-d H:i:s");
20         $data["update_by"]   = "";
21         $data["update_date"] = date("Y-m-d H:i:s");
22         $data["del_flag"]    = '0';
23         
24         return parent::add($data, $options, $replace);
25     }
26     
27     /**
28      * 获得 未删除 的所有数据
29      * 记录是否被删除通过 del_flag 字段来进行确定
30      */
31     public function select($options=array()) {
32         $map["del_flag"] = 0;
33         $this->where($map);
34         
35         return parent::select($options);
36     }
37     
38     /**
39      * 获取 全部 的所有数据
40      */
41     public function selectAll($options=array()) {
42         return parent::select($options);
43     }
44     
45     /**
46      * 更新数据
47      * 更新数据时,要更新 update_by update_date 两个字段
48      */
49     public function save($data='',$options=array()) {
50         $data["update_by"]   = "";
51         $data["update_date"] = date("Y-m-d H:i:s");
52         
53         return parent::save($data, $options);
54     }
55     
56     /**
57      * 删除也是更新
58      * 设置 删除 标志位即可
59      */
60     public function delete($data='',$options=array()) {
61         $data["del_flag"] = 1;
62         
63         return parent::save($data, $options);
64     }

  那样,大家的 BaseModel 就定义好了,未来项目中的 Model 就不再继续 TP 的 Model 类了,而是继续我们自定义的 BaseModel 了。

 

后续大家定义的基类

  世襲的 BaseModel 的主意和持续 Model 的主意是均等的,只是采取 use 引进命名空间到前段时间作用域时的须求校正为大家的命名空间,并不是再去行使 TP 提供的命名空间。代码如下:

1 <?php
2 namespace AdminModel;
3 use AdminModelBaseModel;
4 
5 class TrunkModel extends BaseModel {

  use 引进的命名空间是 AdminModelBaseModel ,因为大家定义的 BaseModel 的命名空间是 AdminModel,因为这里的 TrunkModel 和 BaseModel 在一个命名空间下,省去 use 也是足以的。

 

  那样,在大家用 D 方法实例化 TrunkModel 的对象后,使用 add 方法插入数据时,就能先调用 BaseModel 中的 add 方法了,那样我们每张表都有个别 create_by 等生龙活虎多种字段就都会自行获取了。

本文由365bet亚洲版登录发布于计算机网络,转载请注明出处:自定义基类

您可能还会对下面的文章感兴趣: