abstract:<?Phpnamespace app\index\model;use think\model\concern\SoftDelete;use think\Model;class Staff extends Model{ use SoftDelete; //設(shè)置數(shù)據(jù)表的名稱 protected $table = 'my_sjb'; //設(shè)置
<?Php
namespace app\index\model;
use think\model\concern\SoftDelete;
use think\Model;
class Staff extends Model
{
use SoftDelete;
//設(shè)置數(shù)據(jù)表的名稱
protected $table = 'my_sjb';
//設(shè)置主鍵:默認(rèn)為id
protected $pk = 'id';
//設(shè)置刪除時(shí)間的字段
protected $deleteTime = 'delete_time';
//設(shè)置軟刪除字段的默認(rèn)值
protected $defaultSoftDelete = 0;
}
<?php
namespace app\index\controller; //命名空間
use think\Controller; //系統(tǒng)控制器
use app\index\model\Staff as StaffModel; //導(dǎo)入模型 設(shè)置模型別名 防止沖突
class Staff extends Controller
{
//實(shí)例化模型
//public function instance()
public function instance(StaffModel $staff) //依賴注入
{
//$staff = new StaffModel(); //模型實(shí)例化
dump($staff->getname());//查詢模型名稱
//新增一條記錄
$staff->name = 'yang';
$staff->sex = 0;
$staff->age = 30;
$staff->salary = 12000;
//新增操作
$staff->save();
return '新增成功,id='.$staff->id;
}
//模型查詢
public function query()
{
//1.查詢單挑記錄 get(主鍵/閉包)
// $staff = StaffModel::get(18);
// dump($staff);
// echo $staff['name'],'<br/>';
// echo $staff->name,'<br/>';
//用閉包來創(chuàng)建查詢條件
// $staff = StaffModel::get(function($query){
// $query->where('sex',0)->where('salary','>',8000);
// });
// dump($staff);
//直接靜態(tài)調(diào)用Db類的查詢構(gòu)造器進(jìn)行查詢
// StaffModel::where('sex',0)
// ->where('salary','>',8000)
// ->find();
// dump($staff);
//2.多條記錄的查詢all
//$staffs = StaffModel::all();//不傳參查詢所有
//$staffs = StaffModel::all([18,19,20]);
// $staffs = StaffModel::all(function($query){
// $query->where('age','<',40)->where('salary','>',3000);
// });
//dump($staffs);
// foreach ($staffs as $staff){
// echo '編號(hào):'.$staff->id.'<br/>';
// echo '姓名:'.$staff->name.'<br/>';
// echo '年齡:'.$staff->age.'<br/>';
// echo '性別:'.$staff->sex.'<br/>';
// echo '工資:'.$staff->salary.'<hr/>';
// }
//使用閉包來實(shí)現(xiàn)將請求變量注入到閉包條件中
$age = $this->request->param('age')?:40;
$salary = $this->request->param('salary')?:3000;
$staffs = StaffModel::all(function($query) use ($age,$salary){
$query->where('age','<',$age)->where('salary','>',$salary);
});
dump($staffs);
}
//模型的更新 必須基于查詢 不允許無條件
public function update()
{
// $staff = StaffModel::get(18);
// $staff->name = '大胡子';
// $staff->save();
//支持靜態(tài)方法更新
// StaffModel::update(
// ['name'=>'張飛'],
// ['id'=> 18]
// );
//復(fù)雜更新
// StaffModel::update(
// ['salary'=>\think\Db::raw('salary+500')],
// function($query){
// $query->where('age','>',50);
// }
// );
//查詢構(gòu)造器更新
StaffModel::where('age','>=',50)
->data(['salary'=>\think\Db::raw('salary+500')])
->update();
}
//添加數(shù)據(jù)
public function create()
{
$data = [
'name'=>'唐十一',
'age'=>28,
'sex'=>0,
'salary'=>6500
];
//$field = ['name','age'];
//StaffModel::create($data,$field);
//查詢構(gòu)造器查詢數(shù)據(jù)
StaffModel::insert($data);
}
//模型刪除
public function delete()
{
//destroy 主鍵刪除
//StaffModel::destroy(30);([1,2,3])//支持?jǐn)?shù)組
//刪除條件推薦使用閉包
StaffModel::destroy(function($query){
$query->where('age','>',50)->where('salary','>',5000);
});
//查詢構(gòu)造器實(shí)現(xiàn)
StaffModel::where('age','>=',50)
->where('salary','>',5000)
->delete();
}
//軟刪除:
public function SoftDelete()
{
StaffModel::destroy(18);
//軟刪除在普通查詢中不可見
//$res = StaffModel::where('id','<=',20)->select();
//想看見被刪除的數(shù)據(jù)
//$res = StaffModel::withTrashed()->where('id','<=',20)->select();
//只查看回收站數(shù)據(jù)
$res = StaffModel::onlyTrashed()->select();
dump($res);
}
}
Correcting teacher:查無此人Correction time:2019-06-10 09:48:12
Teacher's summary:完成的不錯(cuò)。數(shù)據(jù)都要保存下來,所以才使用軟刪除。繼續(xù)加油。