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

快速入门ThinkPHP 5.0 --模型篇

乌云龙 PHP开发工程师
难度中级
时长 3小时 0分
  • 使用助手函数model()获取模型
    查看全部
    0 采集 收起 来源:什么是模型

    2018-05-12

  • 使用loader获取模型
    查看全部
    0 采集 收起 来源:什么是模型

    2018-05-12

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

    2018-05-12

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

    2018-05-12

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

    2018-05-11

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

    2018-05-11

  • 输出SQL语句
    查看全部
    0 采集 收起 来源:条件构造器

    2018-05-11

  • 更新数据
    查看全部
  • 插入数据
    查看全部
  • 查询2
    查看全部
  • 查询
    查看全部
  • 软删除:

    首先在模型里面引用SoftDelete
    <?php
    namespace app\index\model;
    use think\Model;
    use traits\model\SoftDelete;
    class User extends Model{
        use SoftDelete;
        #autowritetimestamp表示创建与更新的时间戳都被打开
        protected $autoWriteTimestamp = true;
        #删除数据的时候删除时间戳默认写入字段delete_time中,当要自定义时:
    //    protected $deleteTime = '自定义删除时间字段名';
    }

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

    <?php
    namespace app\index\controller;
    use think\Controller;
    use app\index\model\User;
    class Index extends Controller
    {
        public function index(){
    //        $res = User::destroy(4);//被软删除
    //        $res = User::get(2);//返回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);//删除
        }
    }


    查看全部
  • 模型时间戳:

    <?php
    namespace app\index\model;
    use think\Model;
    
    class User extends Model{
        #autowritetimestamp表示创建与更新的时间戳都被打开
        protected $autoWriteTimestamp = true;
    //    #createtime为false表示创建的时间戳被关闭
    //    protected $createTime = false;
    //    #updatetime为true表示更新时间戳被打开
    //    protected $updateTime = true;
    //    #创建数据的时候创建时间戳默认写入字段create_time中,当要自定义时:
    //    protected $createTime = '自定义创建时间字段名';
    //    #更新数据的时候更新时间戳默认写入字段update_time中,当要自定义时:
    //    protected $updateTime = '自定义更新时间字段名';
    }


    查看全部
  • 模型修改器与自动完成

    <?php
    namespace app\index\model;
    use think\Model;
    class User extends Model{
        #get+字段名+Attr
        public function getGenderAttr($val){
            switch ($val){
                case "1";
                    return '男';
                     break;
                case "2";
                     return '女';
                      break;
                default;
                     return '未知';
                     break;
            }
        }
        #模型修改
    //    public function setPasswordAttr($val,$data){
    //        return $val.$data['email'];
    //    }
    
        #无论对数据库执行插入&更新操作,总是在数据中加上time字段相应的值
        protected $auto = [
          'time'//字段名
        ];
        public function setTimeAttr(){
            return time();//字段对应的值
        }
    
        #insert/update对数据库执行插入/更新操作时,在数据字段中加入对应的值
        protected $insert = [
            'insert'//字段名
        ];
        public function setInsertAttr(){
            return time();
        }
    }


    查看全部
  • 模型获取器:

    首先设置User模型:

    <?php
    namespace app\index\model;
    use think\Model;
    class User extends Model{
        #get+字段名+Attr
        public function getGenderAttr($val){
            switch ($val){
                case "1";
                    return '男';
                     break;
                case "2";
                     return '女';
                      break;
                default;
                     return '未知';
                     break;
            }
        }
    }

    然后在index控制器中操作:

    <?php
    namespace app\index\controller;
    use think\Controller;
    use app\index\model\User;
    class Index extends Controller
    {
        public function index(){
            $res = User::get(1);
            dump($res->gender);//获取性别单栏数据
            dump($res->toArray());//以数组形式获取整条数据,性别显示为男/女/未知
            dump($res->getData());//以原始形式获取整条数据,性别显示为1/2/其他
        }
    }


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

    2018-05-08

举报

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

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