thinkphp5.0
sublime
修改操作 查找并修改 $user = User::get(20); $user->sex = '男'; $user->save(); 直接修改 $user = new User; // save方法第二个参数为更新条件 $user->save(['sex' => '女' ],['id' => 19]); 过滤 $user = new User(); // 过滤post数组中的非数据表字段数据 $user->allowField(true)->save($_POST,['id' => 1]); 批量更新 $user = new User; $list = [ ['id'=>1, 'name'=>'thinkphp', 'email'=>'thinkphp@qq.com'], ['id'=>2, 'name'=>'onethink', 'email'=>'onethink@qq.com'] ]; $user->saveAll($list); 闭包更新 $user = new User; $user->save(['name' => 'thinkphp'],function($query){ // 更新status值为1 并且id大于10的数据 $query->where('status', 1)->where('id', '>', 10); });
聚合 在模型中也可以调用数据库的聚合方法进行查询, 方法 说明 count 统计数量,参数是要统计的字段名(可选) max 获取最大值,参数是要统计的字段名(必须) min 获取最小值,参数是要统计的字段名(必须) avg 获取平均值,参数是要统计的字段名(必须) sum 获取总分,参数是要统计的字段名(必须)
获取器 数据模型中 给State字段设置获取器 public function getStateAttr($val){ $state = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核']; return $state[$val]; } 控制器中 $Aaa= Aaa::get(1); echo $user->state;
修改器(触发方法save) 数据模型中 给Pass字段设置获取器 public function setPassAttr($val){ return md5($val); } 控制器中 $Aaa = new Aaa(); $res = $Aaa->save(['pass'=>'123'],['id'=>1])
数据完成 修改器和数据完成的区别 修改器:数据赋值的时候自动进行转换处理 数据完成:没有手动赋值的情况下进行手动处理 数据完成 //增加和修改操作都会执行 protected $auto=[]; //增加数据会执行 protected $insert = ['create_time']; //修改数据会执行 protected $update = ['update_time'];
时间戳 数据库配置文件中 // 自动写入时间戳字段 'auto_timestamp' => false,(false改成true) 自动写入 protected $autoWriteTimestamp = true; // 定义时间戳字段名 protected $createTime = 'create_at'; protected $updateTime = 'update_at'; 取消更新 protected $updateTime = false;
软删除 作用:实现假删除,可以进行恢复 实现 模型中 namespace app\index\model; use think\Model; use traits\model\SoftDelete; //配合软删除使用 class User extends Model { use SoftDelete; } 控制器中 //删除数据 User::destroy(1); //获取数据 $user = User::get(1);//软删除 数据库数据存在 但是get获取不到 //真实删除 User::destroy(1,true); //读取所有数据包含软删除数据 User::withTrashed()->find(); User::withTrashed()->select(); //仅仅查看软删除数据 User::onlyTrashed()->find(); User::onlyTrashed()->select();
引用类