麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

如何自定義一個Model?ThinkPHP3.2自定義基類Model的

2020-03-24 18:56:46
字體:
來源:轉載
供稿:網友
本篇文章給大家帶來的內容是關于如何自定義一個Model?ThinkPHP3.2自定義基類Model的用法,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

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 方法。

定義代碼如下:

 ?phpnamespace Admin/Model;use Think/Model; * 項目中其他 Model 類的基類 * 該類繼承自 TP 提供的基類 Modelhtml' target='_blank'>class BaseModel extends Model { * 繼承基類 Model 的 add 方法 * 自動插入 id create_by create_date update_by update_date del_flag public function add($data= ,$options=array(),$replace=false) { $data[ id ] = $this- getUuid(); $data[ create_by ] =  $data[ create_date ] = date( Y-m-d H:i:s  $data[ update_by ] =  $data[ update_date ] = date( Y-m-d H:i:s  $data[ del_flag ] = 0  return parent::add($data, $options, $replace); * 獲得 未刪除 的所有數據 * 記錄是否被刪除通過 del_flag 字段來進行確定 public function select($options=array()) { $map[ del_flag ] = 0; $this- where($map); return parent::select($options); * 獲取 全部 的所有數據 public function selectAll($options=array()) { return parent::select($options); * 更新數據 * 更新數據時,要更新 update_by update_date 兩個字段 public function save($data= ,$options=array()) { $data[ update_by ] =  $data[ update_date ] = date( Y-m-d H:i:s  return parent::save($data, $options); * 刪除也是更新 * 設置 刪除 標志位即可 public function delete($data= ,$options=array()) { $data[ del_flag ] = 1; return parent::save($data, $options); }

這樣,我們的 BaseModel 就定義好了,以后項目中的 Model 就不再繼承 TP 的 Model 類了,而是繼承我們自定義的 BaseModel 了。

繼承我們定義的基類

繼承的 BaseModel 的方法和繼承 Model 的方法是一樣的,只是使用 use 引入命名空間到當前作用域時的需要修改為我們的命名空間,而不是再去使用 TP 提供的命名空間。代碼如下:

1 ?php2 namespace Admin/Model;3 use Admin/Model/BaseModel;5 class TrunkModel extends BaseModel {

use 引入的命名空間是 Admin/Model/BaseModel ,因為我們定義的 BaseModel 的命名空間是 Admin/Model,因為這里的 TrunkModel 和 BaseModel 在一個命名空間下,省去 use 也是可以的。

這樣,在我們用 D 方法實例化 TrunkModel 的對象后,使用 add 方法插入數據時,就會先調用 BaseModel 中的 add 方法了,這樣我們每張表都有的 create_by 等一系列字段就都會自動得到了。

相關文章推薦:

thinkphp5框架與Android實現二維碼的生成代碼

Thinkphp批量下載圖片和文件件的代碼實例

php的curl中post方式和get方式的請求代碼

以上就是如何自定義一個Model?ThinkPHP3.2自定義基類Model的用法的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产九色在线播放九色 | 91一区二区三区久久久久国产乱 | 黄色av.com| 久久亚洲成人 | 吾色视频 | 国产精品爱久久久久久久 | 亚洲综合视频网 | 亚洲国产精品一 | 欧美一级一区二区三区 | 国内精品久久久久影院不卡 | 亚洲国产高清自拍 | 99成人在线 | 亚洲国产成人久久一区www妖精 | 亚洲国产精品一区二区久久 | 亚洲一区二区三区在线看 | 亚洲免费视频一区 | 久久免费观看一级毛片 | 欧美一级久久 | 日本中文字幕久久 | 成人店女老板视频在线看 | 激情宗合网 | 黄色毛片一级视频 | 精品一区二区三区毛片 | 爱唯侦察 国产合集 亚洲 | 青青草成人免费视频在线 | 91精品最新国内在线播放 | 国产一级毛片不卡 | 国产福利视频在线观看 | 成人18网站 | 亚洲aⅴ免费在线观看 | 免费黄网站在线播放 | 男女无套免费视频 | 久久久久久久久久亚洲精品 | 日本在线不卡免费 | 国产一区免费观看 | 久久久麻豆 | 成人短视频在线播放 | 免费观看一级黄色片 | 激情小说另类 | 国产精品亚洲激情 | 久久久经典视频 |