1. 程式人生 > >8.5 數據庫模型操作

8.5 數據庫模型操作

ray hda ted save pan 多條 fin false sets

//模型層

<?php namespace app\demo\model; use think\Model; class Student extends Model{ //獲取器 public function getSsexAttr($val){ switch($val){ case 1: return "男"; break; case 2: return
"女"; break; default: return "未知"; break; } } //修改器 public function setClassAttr($val){ return md5($val); } //設置,如果沒有賦值,需要自動完成的字段 public $auto = [‘Sno‘,‘Ssex‘];
public function setSnoAttr(){ return 18; } public function setSsexAttr(){ return 1111; } } ?>

控制層

<?php
     namespace app\demo\controller;
     
     use think\Controller;
     use app\demo\model\Student;//引入模型
     
     class Demo extends Controller{
         
public function test(){ //得到student表中id為4的而數據 $student = new Student; //dump($student->get(4)->toArray()); //查詢操作 //1 條件查詢 //dump($student->get(["sno"=>101])->toArray()); //2 閉包查詢 /*$data = $student->get(function($query){ $query->where(‘Sname‘,‘孫權‘); }); dump($data->toArray());*/ //3 find方法 //$data = $student->where(‘Sname‘,‘劉備‘)->find(); //4 查詢多條數據 /*$data = Student::all(‘1,2,3‘); foreach($data as $key=>$stu){ dump($stu->toArray()); }*/ //5 插入數據 //插入一條 /*$student->data([‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"]); $student->save(); //插入多條 $list = [ [‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"], [‘id‘=>‘‘,‘Sno‘=>‘1000‘,‘Sname‘=>‘哈哈‘,‘Ssex‘=>"男",‘Sbirthday‘=>"男","Class"=>"96080"] ]; dump($user->saveAll($list,false)); */ //更新 /*$student->save([‘Sname‘ => ‘張遼‘,‘Sno‘ => 201], [‘id‘ => 1]);*/ //根據主鍵刪除 //Student::destroy([1,2,3]); // 條件刪除 :刪除id為0的數據 //Student::destroy([‘id‘ => 0]); //獲取器 /*$data = $student->get([‘id‘=>‘7‘]); dump($data->toArray());*/ //修改器 /*$data = $student->save([‘Class‘=>‘345‘],[‘id‘=>‘9‘]); dump($data);*/ //自動完成 //這裏沒有對age和sex賦值 /*$data = $student->save([‘Class‘=>‘345‘],[‘id‘=>‘8‘]); dump($data);*/ } } //時間戳 /* 系統支持自動寫入創建和更新的時間戳字段 第一種方式,是在數據庫配置文件中添加全局設置: // 開啟自動寫入時間戳字段 ‘auto_timestamp‘ => true, 第二種是直接在單獨的模型類裏面設置: protected $autoWriteTimestamp = true; 如果這兩個地方設置為true,默認識別為整型int類型,如果你的時間字段不是int類型的話,例如使用datetime類型的話,可以這樣設置: // 開啟自動寫入時間戳字段 ‘auto_timestamp‘ => ‘datetime‘, 或者 protected $autoWriteTimestamp = ‘datetime‘;*/ ?>

8.5 數據庫模型操作