TP5框架model常見操作示例小結【增刪改查、聚合、時間戳、軟刪除等】_php實例

來源:腳本之家  責任編輯:小易  

檢查POST路徑www.13333515.buzz防采集請勿采集本網。

本文實例講述了TP5框架model常見操作。分享給大家供大家參考,具體如下: 使用model 查詢數據,添加數據,修改數據,刪除數據 聚合操作 獲取器,修改器 自動添加時間戳(創建時間,修改時間) 軟刪除

操作方法后綴 ',/LOG_RECORD'=>DEFAULT_GROUP'=>'Home' false,/>'.html'/路由 URL重新 ' 2,/,Admin'ACTION_SUFFIX'=>'=>true;APP_GROUP_LIST'=>'Home;SHOW_PAGE_TRACE',/, '開啟頁面Trace '/默認分組 'URL

1、使用model查詢數據

電腦常見問題解決 1、無法自動識別硬盤控制器 使用非正版的個別操作系統bai光盤,在安裝du系統時,容易出現此錯誤。原因是非正版光盤自動加載的硬盤控制器zhi驅動不符合電腦自身需要的驅動。這種情況就

$res = User::get(1); //獲取主鍵為1的數據,得到的是一個對象 $res = $res->toArray(); //將對象轉化為數組 dump($res->name); //獲取 $res 里 name 字段的值

由于大部分場景下,PHP都用來做Web應用,而且是Database Driven Application,所以,各類Database Driven的快速開發框架也應運而生,比如說,CakePHP的Model類干脆就定義了CURD幾個針對數據表的操作,

//使用閉包函數查詢 id=1 的記錄$res = User::get(function($query){ $query->where("id","eq",1) ->field('name')});

三大框架是用來開發web應用程序中使用的. Struts:基于MVC的充當了其中的試圖層和控制器 Hibernate:做持久化的,對JDBC輕量級的封裝,使得我們能過面向對象的操作數據庫 Spring:采用了控制反轉的

$res = User::where("id",10)->value('name');$res = User::where("id",10)->field('name')->find(); $res = User::column('email'); //查詢所有的 email 字段值 $res = User::where("id",">",5)->select(); //查詢所有id大于5的記錄

$res = User::all('1,2'); //查詢主鍵等于 1 或2 的記錄foreach($res as $val) //轉化為數組{ dump($val->toArray());}

//使用閉包函數查詢 id<5 的記錄$res = User::get(function($query){ $query->where("id","<",5) ->field('name')});

2、使用model添加數據

$res = User::create([ 'name' => 'yulong', 'pwd' => '123'],true); //第二個參數為true時,只添加數據表中已有的字段,不報錯,不寫則默認為false;;;true 也可以換成一個數組,數組里存放數據表中的字段,表示僅允許數組中的字段添加數據$res->id; //本次添加的自增iddump($res);

$usermodel = new User;$res = $usermodel ->allowField(true) //僅允許添加數據表中存在的字段,也可以寫成數組 ->save([ 'name' => 'yulong', 'pwd' => '123' ]); dump($res->id); //獲取新添加數據的自增id

$usermodel = new User;$res = $usermodel->saveAll([ //一次保存多條數據 'name' => 'yulong001', 'name' => 'yulong002']); dump($ers);

3、使用model更新數據

$res = User::update([ 'name' => 'yulong002'],['id'=>1]); //更新 id=1 的記錄 $res = User::update([ 'name' => 'yulong002'],function(){ $query->where("id","LT",5); //使用閉包函數更新 id<5 的記錄}); dump($res);

$res = User::where("id","<",6) //返回值是被更新數據的行數 ->update([ 'name' => 'hahahaha' ]);

4、使用model刪除數據

$res = User::destriy(1); //刪除主鍵為1的記錄,返回影響數據的行數,也可以傳遞數組 $usermodel = User::get(1);$res = $usermodel->delete(); $res = User::where("id",5)->delete(); // where() 里面有三個參數, 字段值,條件,數值 dump($res);

5、使用model聚合操作

$res = User::where("id",">",5)->count(); //查詢id大于5的記錄條數 // max 可以換成其他的 如 min / sum / avg$res = User::max('num'); //查詢 num 字段中的最大值$res = User::where("id","<",5)->max('num'); //id<5 的記錄中的 num 最大值

6、使用模型獲取器

//model //方法名: get字段名Attr//controller中獲取原始數據使用 $res->getData() public function getSexSttr($val){ switch($val){ case '1': return "男"; break; case '2'; return '女'; break; default: return '未知'; break; }}

7、使用模型修改器

//model 修改器命名 set字段名Attr//修改器作用:在往數據庫添加字段時,控制器中寫未處理的數據,在模型中的修改器中寫處理數據的方法,這樣添加到數據庫中的數據就是處理過得數據了public function setPwdAttr($val){ return md5($val);} // $val代表 pwd 字段,$data代表接收到的所有數據 ,返回的值就是 pwd+email public function setPwdAttr($val,$data){ return $val.$data['email'];}

8、自動往數據庫中添加時間戳

//自動往 time 字段中加入時間戳public function setTimeAttr(){ return time();} //在數據添加時發生改變protected $insert = [ 'time_insert' ]; //設置字段public function setTimeInsertAttr(){ //將字段值設置為當前時間 return time();} //在更新數據時發生改變protected $update = [ 'time_update' ]; //設置字段public function setTimeUpdateAttr(){ //將字段值設置為當前時間 return time();}

9、model時間戳

// 數據庫中的字段 create_time update_time// database.php 中更改配置 'auto_timeStamp' => true// 不推薦使用此方法,因為如果你的數據庫表中沒有 對應的字段 ,程序可能就會報錯// 可以單獨在 某個模型中 添加屬性 protected $autoWriteTimeStamp = true; //開啟自動加入時間戳 protected $createTime = 'create_at'; //設置 創建的時候寫入 的字段 ,值可以為false,關閉操作protedted $updateTime = 'update_at'; //設置 創建和更新的時候寫入 的字段 ,值可以為false,關閉操作

10、軟刪除

// model// 數據表中的字段 delete_time,默認值可以為 null use traits\model\SoftDelete; //使用軟刪除的類 class User extends Model{ use SoftDelete; //在類的開頭 use SoftDelete; protected $deleteTime = 'delete_at'; //設置軟刪除的字段,默認為 delete_time} $res = User::destroy(3,true); //刪除主鍵為3的記錄,第二個參數為 true 時,不是軟刪除,是tm真刪了 $ress = User::get(4);$res = $ress->delete(true); // delete() 沒值時,為軟刪除;值為true,tm的真刪 // controller 獲取到 軟刪除 的記錄$res = User::withTrashed(true)->find(1); //得到id為1 的經過軟刪除 刪除的記錄dump($res->getData()); //獲取原始數據 $res = User::onlyTrashed()->select(); //獲取所有軟刪除的數據

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

使用tp的Expression類別問我為什么知道,我也是遇到這種需求,然后看源碼才搞定的exp=new \\think\\db\\Expression('field(id,3,6,9,1,2,5,8,7)');result=$query->where(['id'=>['in','3,6,9,1,2,5,8,7']])->order($exp)->select();內容來自www.13333515.buzz請勿采集。


  • 本文相關:
  • thinkphp5.0框架使用模型model的獲取器、修改器、軟刪除數據操作示例
  • thinkphp5.0 框架使用模型model添加、更新、刪除數據操作詳解
  • thinkphp5.0 框架model模型簡單用法分析
  • thinkphp5 模型實例化獲得數據對象的教程
  • thinkphp5&5.1框架關聯模型分頁操作示例
  • thinkphp5.0框架的db操作實例分析【連接、增刪改查、鏈式操作等】
  • thinkphp5.1框架數據庫鏈接和增刪改查操作示例
  • tp5(thinkphp5)框架數據庫db增刪改查常見操作總結
  • php filter過濾器全面解析
  • codeigniter通過simplexml將xml轉換成對象的方法
  • apache mysql php 源碼編譯使用方法
  • yii使用ajax驗證顯示錯誤messagebox的解決方法
  • php第三方登錄—qq登錄實現方法
  • centos6.5和centos7 php環境搭建方法
  • laravel實現批量更新多條記錄的方法示例
  • thinkphp5實現數據庫添加內容的方法
  • vb中的rasenumconnections函數返回632錯誤解決方法
  • php將url轉換成短網址的算法分享
  • TP5框架如何order自定義排序
  • tp5框架ajax為什么加上數據庫操作就會請求錯誤(用方法訪問sql可以執行)
  • TP里的Model類可以做什么 - PHP框架開發
  • java框架有哪些常用框架?
  • tp框架報:非法操作:
  • tp5怎么設置配置文件public
  • PHP MVC框架中modeL的作用
  • java的三大框架是什么,功能各是什么
  • 框架梁與框架柱鋼筋的焊接連接方式常用的分別是什么?
  • 網站首頁網頁制作腳本下載服務器操作系統網站運營平面設計媒體動畫電腦基礎硬件教程網絡安全php基礎php技巧php實例php文摘php模板首頁php編程php實例thinkphp入門教程thinkphp模板操作技巧總結thinkphp常用方法總結codeigniter入門教程ci(codeigniter)框架進階教程zend framework框架入門教程php模板技術總結thinkphp5.0框架使用模型model的獲取器、修改器、軟刪除數據操作示例thinkphp5.0 框架使用模型model添加、更新、刪除數據操作詳解thinkphp5.0 框架model模型簡單用法分析thinkphp5 模型實例化獲得數據對象的教程thinkphp5&5.1框架關聯模型分頁操作示例thinkphp5.0框架的db操作實例分析【連接、增刪改查、鏈式操作等】thinkphp5.1框架數據庫鏈接和增刪改查操作示例tp5(thinkphp5)框架數據庫db增刪改查常見操作總結php filter過濾器全面解析codeigniter通過simplexml將xml轉換成對象的方法apache mysql php 源碼編譯使用方法yii使用ajax驗證顯示錯誤messagebox的解決方法php第三方登錄—qq登錄實現方法centos6.5和centos7 php環境搭建方法laravel實現批量更新多條記錄的方法示例thinkphp5實現數據庫添加內容的方法vb中的rasenumconnections函數返回632錯誤解決方法php將url轉換成短網址的算法分享php獲取數組長度的方法(有實例)微信公眾平臺實現獲取用戶openid教你如何使用php session使用php生成二維碼的兩種方法(帶php發送get、post請求的6種方法簡php中把stdclass object轉array的微信公眾平臺網頁授權獲取用戶基laravel框架數據庫curd操作、連貫php刪除數組中空值的方法介紹php從數組中刪除元素的四種方法實php與java進行通信的實現方法thinkphp調用百度翻譯類實現在線翻譯thinkphp curd方法之table方法詳解php常用工具類大全附全部代碼下載php判斷數組是否為空的實例方法詳解yii2實現分庫分表的方案與思路yii2框架加載css和js文件的方法分析關于thinkphp 框架表單驗證及ajax驗證問題php設計模式之策略模式(strategy)入門與laravel用戶授權系統的使用方法示例
    免責聲明 - 關于我們 - 聯系我們 - 廣告聯系 - 友情鏈接 - 幫助中心 - 頻道導航
    Copyright © 2017 www.13333515.buzz All Rights Reserved
    3排列五开奖结果