婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > TP5框架model常見操作示例小結【增刪改查、聚合、時間戳、軟刪除等】

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

熱門標簽:重慶外呼電銷系統多少錢 南京3D地圖標注 邢臺400電話辦理 南寧電話外呼系統線路 咸陽電銷 濟源百應電銷機器人聯系方式 辦理400電話哪家好點 正規電銷機器人系統 嘟嘟云外呼系統

本文實例講述了TP5框架model常見操作。分享給大家供大家參考,具體如下:

  • 使用model 查詢數據,添加數據,修改數據,刪除數據
  • 聚合操作
  • 獲取器,修改器
  • 自動添加時間戳(創建時間,修改時間)
  • 軟刪除

1、使用model查詢數據

$res = User::get(1); //獲取主鍵為1的數據,得到的是一個對象
 
$res = $res->toArray(); //將對象轉化為數組
 
dump($res->name); //獲取 $res 里 name 字段的值
//使用閉包函數查詢 id=1 的記錄
$res = User::get(function($query){
  $query->where("id","eq",1)
     ->field('name')
});
$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());
}
//使用閉包函數查詢 id5 的記錄
$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; //本次添加的自增id
dump($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);  //使用閉包函數更新 id5 的記錄
}); 
 
 
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'); //id5 的記錄中的 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程序設計有所幫助。

您可能感興趣的文章:
  • Thinkphp5.0框架使用模型Model的獲取器、修改器、軟刪除數據操作示例
  • Thinkphp5.0 框架使用模型Model添加、更新、刪除數據操作詳解
  • Thinkphp5.0 框架Model模型簡單用法分析
  • thinkphp5 模型實例化獲得數據對象的教程
  • ThinkPHP5&5.1框架關聯模型分頁操作示例
  • Thinkphp5.0框架的Db操作實例分析【連接、增刪改查、鏈式操作等】
  • ThinkPHP5.1框架數據庫鏈接和增刪改查操作示例
  • tp5(thinkPHP5)框架數據庫Db增刪改查常見操作總結

標簽:武漢 隴南 通遼 南通 黃山 河南 平頂山 唐山

巨人網絡通訊聲明:本文標題《TP5框架model常見操作示例小結【增刪改查、聚合、時間戳、軟刪除等】》,本文關鍵詞  TP5,框架,model,常見,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《TP5框架model常見操作示例小結【增刪改查、聚合、時間戳、軟刪除等】》相關的同類信息!
  • 本頁收集關于TP5框架model常見操作示例小結【增刪改查、聚合、時間戳、軟刪除等】的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 成安县| 宜城市| 兴义市| 丰顺县| 天门市| 利津县| 监利县| 仙游县| 建平县| 通河县| 溆浦县| 竹北市| 宾川县| 磐安县| 化德县| 明溪县| 新巴尔虎右旗| 兰坪| 儋州市| 鲁甸县| 岳阳市| 视频| 沙田区| 永济市| 裕民县| 延庆县| 阳朔县| 务川| 大兴区| 舒城县| 安西县| 榕江县| 天峻县| 黔西| 栾城县| 潞城市| 隆德县| 鹤庆县| 松江区| 中卫市| 西华县|