牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP day7 TP5 model模型对象

创建时间:2017-07-25 投稿人: 浏览次数:158

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

  

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。