栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP

五十一章 TP51模型之增删改查

PHP 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

五十一章 TP51模型之增删改查

where('sex',0)->where('salary','>',8000);
        });        
        //模型可以静态调用所有的查询构造器方法
        echo '年龄大于50员工信息:';
        $staff = StaffModel::field('name,salary')->where('age','>',50)->find();
        //2.多条记录查询: all(主键列表/闭包)
        $staffs = StaffModel::all(); //获取所有员工信息    
        $staffs = StaffModel::all([1,2,3]); //返回主键=1,2,3的记录    
        //all()也支持闭包查询,这也是我们以后常用的方式
        $staffs = StaffModel::all(function($query){
            $query->where('age','<=',40)->where('salary','>',3000);
        });        
        //all()返回的数组,我们一般是采用循环的方式进行遍历
        foreach ($staffs as $staff) {
            echo '姓名:'.$staff->name.'
';             echo '年龄:'.$staff->age.'
';             echo '工资:'.$staff->salary.'
';         }         //采用闭包的好处非常多,特别是支持查询变量从外部传入         //举例,查询条件由用户通过URL请求提供         //控制器提供一个属性$request,其值就是请求对象,可用来快速请求变量         //如果当前请求变量中存在age和salary由获取到,否则使用默认值40,3000         $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()     {                 //最简单直观的方式是先查询,再模型调用save()         $staff = StaffModel::get(2); //查询获取到要更新的记录         $staff->name = '龙姑娘';  //更新记录字段         $staff->save();  //将更新数据写到表中,返回受影响数量         //强烈推荐使用静态方法:update(数据,条件,字段),返回模型对象         //改写上面案例,将龙姑娘更改回小龙女         StaffModel::update(             ['name'=>'小龙女'],             ['staff_id'=>2]         );         //将年龄大于50的员工的工资加500         StaffModel::update(             ['salary'=> thinkDb::raw('salary+500')],  //数据使用原始值调用             function($query){   //条件使用闭包                 $query->where('age','>',50);             }         );         //也可以使用查询构造器来更新数据         StaffModel::where('age','>',50)         ->data(['salary'=> thinkDb::raw('salary+500')])         ->update();             //在开发过程中,具体使用哪种方式随你,但我推荐使用静态update()方法     }     //模型创建: 添加数据     public function create()     {         //创建要添加的数据         $data = [             'name'=>'孙悟空',             'sex' => 0,             'age' => 100,             'salary' => 8888         ];         //设置允许添加的字段名,不在列表中的字段,有值也不会添加到表中,建议表中给该字段创建默认值         $field = ['name','sex','age','salary'];         StaffModel::create($data, $field);         //也可以使用查询构造器添加数据,          StaffModel::insert($data);     }     //模型删除: 删除记录     public function delete()     {         //删除采用静态方法destory(主键/闭包)         StaffModel::destroy(43);         StaffModel::destroy([55,56,99]); //支持多主键         //删除条件推荐使用闭包查询         //删除年龄大于等于55岁,工资大于等于5500元的员工         StaffModel::destroy(function($query){             $query->where('age','>=',55)->where('salary','>=',5000);         });         //可以使用查询构造器删除数据:删除年龄小于20岁的员工,         StaffModel::where('age','<',20)->delete();     }     //软删除:必须在模型中进行先行配置     public function softDelete()     {         // StaffModel::destroy(1);         //生成的SQL语句不是删除,而是更新:         //UPDATE `staff` SET `delete_time` = 1527148290 WHERe `staff_id` = 1              //软删除记录不会出现在查询结果中         $res = StaffModel::where('staff_id < 5')->select();         //如果想让查询结果包括已经软删除的记录         $res = StaffModel::withTrashed()->where('staff_id<5')->select();         //如果只想查询已经被软删除的数据(回收站)         $res = StaffModel::onlyTrashed()->select();         dump($res);     } } //分类求和 public function query(){     $products = ProductModel::field('name,SUM(price) AS prices')->group('name')->select();     foreach ($products as $product) {         echo '名称:'.$product->name.'
';         echo '价格:'.$product->prices.'
';     }     }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/228029.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号