多语言展示
当前在线:587今日阅读:103今日分享:49

TP5.0数据模型2

TP5.0数据模型2
工具/原料
1

thinkphp5.0

2

sublime

方法/步骤
1

修改操作     查找并修改          $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);           });

2

聚合     在模型中也可以调用数据库的聚合方法进行查询,     方法          说明     count        统计数量,参数是要统计的字段名(可选)     max          获取最大值,参数是要统计的字段名(必须)     min           获取最小值,参数是要统计的字段名(必须)     avg           获取平均值,参数是要统计的字段名(必须)     sum          获取总分,参数是要统计的字段名(必须)

3

获取器     数据模型中          给State字段设置获取器          public function getStateAttr($val){               $state = [-1=>'删除',0=>'禁用',1=>'正常',2=>'待审核'];                return $state[$val];          }     控制器中          $Aaa= Aaa::get(1);          echo $user->state;

4

修改器(触发方法save)     数据模型中          给Pass字段设置获取器          public function setPassAttr($val){              return md5($val);          }     控制器中          $Aaa  = new Aaa();          $res = $Aaa->save(['pass'=>'123'],['id'=>1])

5

数据完成     修改器和数据完成的区别          修改器:数据赋值的时候自动进行转换处理          数据完成:没有手动赋值的情况下进行手动处理     数据完成          //增加和修改操作都会执行          protected $auto=[];          //增加数据会执行          protected $insert = ['create_time'];          //修改数据会执行          protected $update = ['update_time'];

6

时间戳     数据库配置文件中     // 自动写入时间戳字段      'auto_timestamp'  => false,(false改成true)     自动写入     protected $autoWriteTimestamp = true;     // 定义时间戳字段名      protected $createTime = 'create_at';     protected $updateTime = 'update_at';     取消更新     protected $updateTime = false;

7

软删除     作用:实现假删除,可以进行恢复     实现          模型中               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();

注意事项

引用类

推荐信息