PHP day7 TP5 model模型对象

来源:互联网 发布:html5跑酷游戏源码 编辑:程序博客网 时间:2024/06/07 01:09

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();    }

  

原创粉丝点击