为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
快速入门ThinkPHP 5.0 --模型篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

快速入门ThinkPHP 5.0 --模型篇

乌云龙 PHP开发工程师
难度中级
时长 3小时 0分
  • tp里面更新数据的两种方式

    1.

    $model::where(array('字段'=>'值'))->update(array($change)); 

    或者如图所示;

    查看全部
  • use think\Db;

    $db = Db::name('table');

    $db->insert($data); //返回值是影响记录的行数 插入数

    $db->insertGetId($data); //返回插入数的自增id

    $db->insertAll($data); //返回插入的成功行数

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

    2018-11-05

  • 软删除:

    首先在模型里面引用SoftDelete

    <?php

    namespace app\index\model;

    use think\Model;

    use traits\model\SoftDelete;

    class User extends Model{

        use SoftDelete;

    #删除数据的时候删除时间戳默认写入字段delete_time中,当要自定义时:

    //    protected $deleteTime = '自定义删除时间字段名';

    }


    然后在控制器里面执行操作:

     public function index(){

    //        $res = User::destroy(4);//被软删除

    //        $res = User::get(4);//返回NULL

     

            #查询包含已删除的数据

            //$res = User::withTrashed(true)->find(2);

     

            #查询仅包含已删除的数据

            $res = User::onlyTrashed()->select();

            foreach ($res as $val){

                dump($val);

            }

            #若要恢复被软删除的数据,直接用update方式将delete_time的值设置为NULL即可

     

            #当开启软删除后要想真正彻底删除数据,在destroy的第二个参数后面传入一个true值

            $res = User::destroy(1,true);

     

            #通过get方式进行软删除/删除

            $res = User::get(3);//如果此处数据已经被软删除则获取到的为NULL,后面的操作无效

            $user->delete();//软删除

            $res = $user->delete(true);//删除

        }


    查看全部
  • 全局添加更新时间需要在表中新建create_time和update_time字段,配置文件中设置“auto_timestamp"=>true,一般不开启这个功能,否则表中不存在该字段时会报错,真正删除需要把destroy方法或delete方法的第二个参数设置为true

    123456789use think\Model;use traits\model\SoftDelete;class User extends Model{    use SoftDelete;使用软删除    protected $autoWriteTimestamp = true;//开启自动更新时间    protected $createTime = false;//设置为false代表不使用创建时间    protected $updateTime "update_at";//设置自定义更新时间的字段    protected $deleteTime "delete_at";//设置自定义的软删除字段}


    查看全部
  • auto (新增及更新的时候自动完成的属性数组)


    insert(仅新增的时候自动完成的属性数组)


    update(仅更新的时候自动完成的属性数组)


    查看全部
  • <?php    namespace app\index\model;    use think\Model;    class User extends Model{        protected $auto = [            'time'        ];        protected $insert = [            'time_insert'        ];        protected $update = [            'time_update'        ];        public function setPasswordAttr($val,$data){            //第二个参数是数组数据            return $val.$data['email'];            return md5($val);        }        public function setTimeAttr(){            return time();        }        public function setTimeInsertAttr(){            return time();        }        public function setTimeUpdateAttr(){            return time();        }    }

    查看全部
  • <?php    namespace app\index\model;    use think\Model;    class User extends Model{        public function getSexAttr($val){            switch($val){                case '1':                    return "男";                    break;                case '2':                    return "女";                    break;                default:                    return "未知";                    break;            }        }    }

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

    2018-11-05

  • 模型获取器 成员方法(get字段名Attr)[字段名首字母大写] 在model中使用 在controller中use下model中的类(该类需继承model类),利用  类名::get()  进行获取数据值 可利用toArray获取改后数据 可利用getData获取改前数据

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

    2018-11-05

  • count     User::count();         max       User::max('字段名')   sum       User::sum('字段名')   avg       User::avg('字段名')   min       User::min('字段名') 都可以和where条件合作

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

    2018-11-05

  • destroy对数据库删除的操作 $userModel = User::get(7);  $res = $userModel->delete();//对数据库删除的操作 $res = User::where("1=1") -> delete();//1=1 清空数据库

    查看全部
  • <?phpnamespace app\index\controller;use think\Controller;use app\index\model\User;class Index extends Controller{    public function index(){        #destroy返回影响行数//        $res = User::destroy(function ($query){//           $query->where('id','<',5)//               ->whereOr('id','>',10) ;//        });//        dump($res);         #get返回影响行数//        $userModel = User::get(7);//        $res = $userModel->delete();//        dump($res);         #delete,返回影响行数        $res = User::where('id',10)->delete();        dump($res);    }}

    查看全部
  • <?phpnamespace app\index\controller;use think\Controller;use app\index\model\User;class Index extends Controller{    public function index(){        #当数据中存在自增id时,数据更新方式,返回修改的内容,无法验证是否更改//        $res = User::update([//            'id' => 1,//            'username' => 'wenco_update'//        ]);//        dump($res->toArray());         #当数据中不存在自增id时如下,第二个参数即为where,可以为闭包函数,返回修改内容//                $res = User::update([//            'username' => 'wenco_update'//  当第二个参数为数组      ],['id' => '2']);//当第二个参数为闭包函数        ],function ($query){//                    $query->where('id','>=', 15);//                });         #where 返回被影响行数,推荐使用!//        $res = User::where('id','between',[1,5])->update([//            'username' => 'wenco_old'//        ]);//        dump($res);         #User::get,返回被影响行数//        $userModel = User::get(1);//        $userModel->username = '123';//        $userModel->email = '123@qq.com';//        $res = $userModel->save();//        dump($res);         #new User,返回影响行数,第二个参数可以为闭包函数//        $userModel = new User;//        $res = $userModel->save([//            'username' => 555//        ],['id' =>  18]);//        dump($res);         #saveAll,返回结果集,不推荐使用        $userModel new User;        $res $userModel->saveAll([            ['id' => 1,'username' => 'wencocococ' ],            ['id' => 2,'username' => 'wencocococ' ]        ]);        dump($res);    }}



    查看全部
  • // $res = User::create([ // 'username' => 'imooc', // 'password' => md5('imooc'), // 'email'    => 'imooc@qq.com', // 'num'      => 100, // 'demo'     => 123 // ], ['username', 'email']); // $userModel = new User; // $userModel->username = '17771258'; // $userModel->email = '17771258@qq.com'; // $userModel->password = md5('17771258'); // $userModel->save(); // $userModel = new User; // $res = $userModel // ->allowField('username') // ->save([ // 'username'  => 'imooc1', // 'password'  => md5('imooc1'), // 'demo'      => 123 // ]); $userModel = new User; $res = $userModel->saveAll([ ['email'=> '17771258@qq.com'], ['email'=> '17771259@qq.com'] ]); foreach($res as $val) { dump($val->toArray()); } //dump($res); //dump($res);

    查看全部
  • Model->get 返回对象 用toarray 获取信息

    查看全部
  • 使用模型查询数据;#通过get方式获取数据,括号内可以为主键,也可以为闭包函数

    //        $res = User::get(function($query){

    //            $query->where("username","eq","wenco_3")

    //            ->field("email");

    //        });

     

    //        $res = User::where("id","<=",15)

    //            ->field("id,username")

    //            ->limit(19)

    //            ->order("id"  ,"DESC")

    //            ->select();


    查看全部

举报

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

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