为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0 --模型篇

难度中级
时长 3小时 0分
学习人数
综合评分9.67
70人评价 查看评价
10.0 内容实用
9.5 简洁易懂
9.5 逻辑清晰
  • 配置自动写入时间戳


    64de354b0001435309600540.jpg
    查看全部
  • #查询
           //获取单个数据
    //        $res=User::get(1);

           //获取多个数据
    //        $res = User::all('1,2,3');


    //        foreach ($res AS $val){
    //            dump($val->toArray());
    //        }

           //获取指令列的数据,返回值为数组
    //        $res = User::column('name,age');
    //        dump($res);


           #插入
    //        $res = User::create([
    //           'name'=>'cc',
    //           'age'=>13
    //        ]);

           //save()更便捷,返回数组
           //allowField(*);    参数为true时,过滤不存在的字段。   参数为存在的字段时,save的数组内只添加该字段的值。
    //        $userModel = new User;
    //        $res = $userModel->allowField('name')->save([
    //           'name'=>'bb',
    //           'age'=>18
    //        ]);
    //        dump($res);

           //saveAll([])返回对象.
    //        $userModel = new User;
    //        $res = $userModel->saveAll([
    //            ['name' => 'xx']
    //        ]);
    //
    //        foreach ($res as $val) {
    //            dump($val->toArray());
    //        }

           #更改
    //        update();推荐使用
    //        $userModel = new User;
    //        $res = $userModel->where('id','>',8)
    //            ->update(['age'=>10]);
    //        dump($res);

           //save();推荐使用 使用闭包函数function ($query)
    //        $userModel = new User();
    //        $res = $userModel->save([
    //           'age'=>20
    //        ],function ($query){
    //            $query->where('id','>',8);
    //        });
    //        dump($res);

    查看全部
  • <?php

    namespace app\index\controller;

    use think\Controller;
    use think\Db;

    class Index extends Controller
    {
       public function index($name = 'world')
       {
           $this->assign('name', $name);


           $db = db('test');
    //        $res=Db::name('test')->select();
    //          或
    //        $res=Db::table('test')->select();
    //        或
    //        $res=db('test')->select();


    //        $res=Db::query('select id , data from tp_5_test');
    //        select 返回所有记录
    //        $res=Db::table('tp_5_test')->select();
    //        $res=Db::table('tp_5_test')->find();
    //        返回单个字段数据
    //        $res=Db::table('tp_5_test')->value('data');
    //        返回一组字段数据,可以存在第二个参数,并以第二个参数为Key输出
    //        $res=Db::table('tp_5_test')->column('data');


    //        插入数据  insert();
    //        insertGetId();此方法运行后,返回主键id
    //        $res=$db->insertGetId([
    //            'name' => 'nono',
    //            'data' =>md5('bad')
    //        ]);
    //        dump($res);
    //        $last=db('test')->select();
    //        dump($last);


    //        insertAll();插入数组/一组数据,返回插入数据成功的行数
    //        $data=[];
    //        for ($i=0;$i<10;$i++){
    //            $data[]=[
    //                'name' =>'yeye'.$i,
    //                'data' =>md5('see'.$i)
    //            ];
    //        }
    //        $res=$db->insertAll($data);
    //        dump($res);


    //        update() 可以改变多字段信息,返回影响行数
    //        $res= $db->where([
    //            'id'=>1
    //        ])->update([
    //            'name'=>'abc',
    //            'data'=>md5('ssss')
    //        ]);

    //        setField(); 每次变更一个字段信息,返回影响行数
    //        $res = $db->where([
    //            'id'=>1
    //        ])->setField('name','qwe');

    //        setInc(a,b);  每次执行(字段)都自增.   默认不写第二参数自增1,第二参数是多少就自增多少。返回影响行数
    //        $res=$db->where(['id'=>1])->setInc('num');//+1
    //        $res=$db->where(['id'=>1])->setInc('num',5);//+5

    //        setDec();  每次执行都自减.
    //        $res=$db->where(['id'=>1])->setDec('num');
    //        $res=$db->where(['id'=>1])->setDec('num',5);


    //        delete();不添加where条件时,按主键删除时,直接添加参数即可 例:delete(2);
    //        $res=$db->delete(2);


           #条件构造器,条件信息
           /*  where()     whereOr()
            *  EQ      =
            *  NEQ     <>
            *  LT      <
            *  ELT     <=
            *  GT      >
            *  EGT     >=
            *  BETWEEN     BETWEEN * AND *
            *  NOTBETWEEN      NOTBETWEEN * AND *
            *  IN      IN (*,*)
            *  NOTIN   NOT IN (*,*)
            */

    //        $sql = $db->where('id','eq',1)->buildSql();


           #链式操作
           /*
            *
            *      指定排序 order('id','desc') 或者 order(['id'=>'desc','create_time'=>'desc'])
            *
            *      指定分页 page(page,listRow);    page:页数 , listRow:每页显示行数
            *
            *
            *
            *
            */


           $res = $db
               ->field('data,num')
    //            ->order('id', 'desc')
    //            ->limit(3,5)
               ->group("name")
    //            ->page(1, 5)
               ->select();


           dump($res);
           return $this->fetch();
       }

    //    public function dbTest(){
    //        $data=Db::table('tp_5_test')->select();
    //        $this->assign('result',$data);
    //
    //        return $this->fetch('dbTest');
    //    }
    }

    查看全部
    0 采集 收起 来源:链式操作

    2021-11-24

  • 把数据库完成同一件事的操作放在公共的方法里,在控制器中直接调用。

    查看全部
    0 采集 收起 来源:什么是模型

    2020-06-29

  • update 返回影响的行数(同时更新多个字段)

     setField返回影响的行数(只更新一个字段)

    setInc返回影响的行数(某个字段自增)

    setDec返回影响的行数(某个字段自减)


    查看全部
  • $res= $Db::name('user)->insert(['username'=>'mmm','email'=>'mmm@qq.com']);

    insert 返回值是影响记录的行数,插入行。

    insertGetId 返回插入数据的自增id

    insertAll返回插入数据成功的行数。

    每刷新一次就会执行一次insert。

    查看全部
    0 采集 收起 来源:添加数据

    2020-06-22

  • Db::table('biaoming')->select();

    有四种查询方式,select(),column()返回多条记录,当不存在时返回空数组,find(),value()返回一条记录,当不存在时,返回null。

    查看全部
  • 1.四种连接方式

    查看全部
  • 修改器,在数据添加的时候可以修改数据

    在模型中添加.
    $data来自获取的表单数组,set后为表字段名
    public function setPasswordAttr($val,$data){
        return md5($val.$data['email']);
        //return md5($val);
    }

    查看全部
  • controller/Index.php

    <?php

    namespace app\index\controller;

    use think\Controller;
    use app\index\model\User;

    class Index extends Controller
    {
        public function index()
        {
            $res=User::get(2);
            dump($res->sex);//输出转换后字段值

            dump($res->toArray());//获取到转换后数组

            dump($res->getData());//获取原生数组

        }
    }

    查看全部
    0 采集 收起 来源:模型获取器

    2020-04-06

  • model/User.php

    <?php

    namespace app\index\model;

    use think\Model;

    classUser extends Model
    {
        public function getSexAttr(){
            switch ($val) {
                case '1':
                    return "男";
                    break;
                case '2':
                    return "女";
                    break;
                default:
                    return "未知";
                    break;
            }
        }
    }

    查看全部
    0 采集 收起 来源:模型获取器

    2020-04-06

  • class Index extends Controller{
       public function index()
        {
            $res = User::count();
            $res = User::where('id','>','5')->count();

            $res = User::max('age');
            $res = User::where('id','>','5')->max('num');

            $res = User::sum('age');
            $res = User::where('id','>','5')->sum('num');

            $res = User::min('age);

            $res = User::avg('age');//都可以和第一个一样带条件查询
            dump($res);
        }}

    查看全部
    0 采集 收起 来源:模型聚合操作

    2020-04-06

  • namespace app\index\controller;

    use think\Controller;
    use app\index\model\User;

    class Index extends Controller
    {
        public function index()
        {
            $res=User::destroy(function($query){
            $query->where("id","<",5);
             });

            $userModel=User::get(7);
            $res=$userModel->delete();

            $res=User::where("id","<",9)
                ->delete();

            dump($res);

        }
    }

    查看全部
  • model中调用一下softdelete
    查看全部
  • namespace app\index\controller;

    use think\Controlle;
    use app\index\model\User;1、2方法需要

    //use think\Loader;3引入此类无需上行调用模型,下面可直接载入

    class Index extends Controller
    {
        public function index()
        {
            //1下面是静态方法,推荐
            $res= User::get(2);

            //2下面是实例化方式
            //$user= new User;
            //$res=$user::get(3);

            //3下面是直接载入
            //$user= Loader::model("User");
            //$res= $use::get(4);

            //4下面是利用助手函数,此法上面不用引入任何类
            //$user= model("User");
            //$res=$user::get(6); 

            $res=$res->toArray();
            dump($res);

        }

    }


    查看全部
    0 采集 收起 来源:什么是模型

    2020-04-01

  • where("id",">",10)
    field("username,id")
    order("id desc")
    limit(3,5)//从第三条开始,取5条
    page(3,5)//从第三页开始,取5条
    select()

    查看全部
    0 采集 收起 来源:链式操作

    2020-04-01

  • whereOr是OR关系

    buildSql();输出查询语句

    查看全部
    0 采集 收起 来源:条件构造器

    2020-04-01

  • $db->delete(2)返回影响行数。如果ID是主键,直接删除id=2的值;也可前面加where条件。

    查看全部
  • update返回影响的行数,可更新多字段

    setField返回影响的行数,每次更新一个字段

    setInc返回影响的行数,不加第二参数每次加1,加参数则每次加参数值

    setDec返回影响的行数,不加第二参数每次减1,加参数则每次减参数值

    查看全部
  • insertAll多条插入返回插入数据成功的行数

    查看全部
    0 采集 收起 来源:添加数据

    2020-03-30

  • insert返回值是影响记录的行数,即插入数

    查看全部
    0 采集 收起 来源:添加数据

    2020-03-30

  • insert返回值是影响记录的行数,即插入数
    insertGetId返回插入数据的自增ID
    insertAll返回插入数据成功的行数

    查看全部
    0 采集 收起 来源:添加数据

    2020-03-30

  • Db::table('imooc_user')->find();每次不需要实例化
    db('user')-find();每次调用会实例化
    db('user',[],false)-find();添加第三个参数false就不会每次调用实例化

    查看全部
  • Db::name('user')->select();
    Db::table('imooc_user')->find();

    两者都返回二维数组

    查看全部
  • value返回一条记录,并且是这条记录的某个字段值;
    如果结果不存在,返回NULL。

    column返回一个一维数组,数组中的value值就是我们要获取的列的值;
    如果存在第二个参数,就返回这个数组并且用第二个参数的值作为数组的key值。
    如果不存在,返回空数组。

    查看全部
  • select返回所有记录,返回的结果是一个二维数组;
    如果结果不存在,返回一个空数组。

    find返回一条记录,返回的结果是一个一位数组(本期讲解中截图有错,下一期视频有更正);
    如果结果不存在,返回NULL.

    查看全部
首页上一页1234567下一页尾页

举报

0/150
提交
取消
课程须知
1、有一定的php基础。 2、对ThinkPHP5 有一定的了解。 3、没有接触过tp5 的学生可以先看下我之前录制的 <快速入门 ThinkPHP5 基础篇>
老师告诉你能学到什么?
1、ThinkPHP5 的数据库操作类 2、ThinkPHP5 的数据模型 3、使用数据模型快速对数据库进行增删改查的操作 4、ThinkPHP5 的自动完成操作 5、模型的自动时间戳和软删除

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!