PHP day7 TP5 model模型对象
1. tp 模型对象 查询数据
//一,获取一条数据 //1.传递闭包函数 /*$res = User::get(function($query){ $query->where("username","eq","user002") ->field("username,email"); });*/ //2. /*$res = User::where("id",2) ->field("id,username") ->find();*/ //二,获取多条数据 //3. /*$res = User::all("1,2,3"); //4. //$res = User::all(function($query){ $query ->where("id","<",5) ->field("id,email"); }); foreach($res as $val){ dump($val->toArray()); }*/ //5. /*$res = User::where("id","<",5) ->field("username,email") ->limit(2) ->order("id DESC") ->select(); foreach($res as $val){ dump($val->toArray()); }*/ //$res = $res->toArray(); //三,获取某个字段数据 //$res = User::where("id",10)->value("email"); //四,获取某一列字段数据 //$res = User;;column("email","username"); return $this->fetch();
二、 使用模型添加数据
//create()第二个参数,是允许插入的字段数组,(若设置为true,可以排除不能添加的字段) /*$res = User::create([ "username" => "user002", "password" => md5("1234"), "email" => "12345@email.com" ],true);*/ //使用userModel //返回值为保存的对象 /*$userModel = new User; $userMpdel->username = "user021"; $userModel->email = "123456@email.com"; $userModel->save(); //或 //返回值为插入数据的行数 //allowField([字段1,字段2...]),允许插入的字段,,也可以设置true,过滤掉不需要的字段 //$userModel->allowField([字段1,字段2...])->save([ "username" => "user021", "email" = "132456@email.com" ]); // */ //返回值为插入数据的对象数组 $userModel = new User; $res = $userModel->saveAll([ ["username"=>"user001"], ["username"=>"user002"], ["username"=>"user003"] ]); foreach($res as $val){ dump($val->toArray()); }
3. 使用模型更新数据
//update的参数中若存在主键,则更新主键为传递值的对象 //返回更新的对象 /*$res = User::update([ "id" => 1, "username" => "user003" ]);*/ /*$res = User::update([ "username" => "user003" ],["id" => 1]);*/ //或 传递闭包函数 /*$res = User::update([ "username" => "user003" ],function($query){ $query->where("id","LT",2); });*/ //返回被更新的数据行数 /*$res = User::where("id","<",6) ->update([ "username" => "user003" ]);*/ //返回被更新的数据行数 /*$userModel = User::get(1); $userModel->username = "123"; $res = $userModel->save();*/ //save 传递第二参数,更新以第二个参数为条件的更新 //第二个参数 也可以设置为一个闭包函数 //返回值 为影响的行数 /*$userModel = new User; $res = $userModel->save([ "email" => "123465@email.com" ],[ "id" => 4 ]);*/ $userModel = new User; //返回值 为影响的行数 $res = $userModel -> saveAll([ "id"=>1,"username"=>"user0002" ], [ "id"=>2,"username"=>"user0003" ]); dump($res);
4.使用模型删除数据
//返回被删除的行数 //1.直接传主键值 //2.传递数组如 ["id"=>2] //3.传递闭包函数 /*$res = User::destroy(function($query){ $query->where("id","<",5); });*/ /*$userModel = User::get(2); $res = $userModel->delete();*/ $res = User::where("id","<",5) ->delete();
5.使用模型聚合操作
$res = User::count(); $res = User::where("id",">",10)->count(); $res = User::max("num"); $res = User::min("num"); $res = User::where("id","<",5)->max(num); $res = User::sum(num); $res = User::avg(num);
6. 模型获取器 --》 Model类中: get字段名Attr($val){}
$res = User::get(3); //获取经过模型获取器后的数据 dump($res->sex); $res->toArray(); //获取经过模型获取器后的数据 $res->getData();
7. 模型修改器 -》 Model类中: set字段名Attr($val){}
$auto 数据添加和更新都会进行操作 配合set字段名Attr($val){ return 操作; }
$insert 数据进行插入时进行操作 配合set字段名IndertAttr($val){ return 操作; }
$update 数据进行更新时发生操作 配合set字段名UpdateAttr($val){ return 操作; }
自动完成 -- 配合修改器使用
例如:
//先在model类内添加,需要自动完成字段数组 protected $auto = ["字段1","字段2"]; public function set字段1Attr(){ return 处理字段1(); }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: 关于C++中结构体及其指针成员的内存分配和释放
- 下一篇: java初始化二维数组的三种方式
copyright © 2008-2019 亿联网络 版权所有 备案号:粤ICP备14031511号-2