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

快速入门ThinkPHP 5.0 --模型篇

乌云龙 PHP开发工程师
难度中级
时长 3小时 0分
  • 推荐使用的方法https://img1.sycdn.imooc.com//5b5173680001de2806240148.jpg

    查看全部
  • https://img1.sycdn.imooc.com//5b5166ad0001d02f07350123.jpg

    修改器进行复杂加密

    查看全部
  • 模型修改器    set字段名Attr    

    查看全部
  • https://img1.sycdn.imooc.com//5b51626a000140d805710383.jpg获取器的设置

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

    2018-07-20

  • 格式固定    get字段名Attr    获取器的设置

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

    2018-07-20

  • $res = Db:table('imooc_user')

    -> where('id', '>', 10)

    -> field('username, id')

    -> order('id DESC')

    // -> LIMIT(3, 5)

    // -> page()

    -> group() //order不生效

    -> select();


    dump($req);


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

    2018-07-20

  • $db = Db::name('user');

    $data = [];

    $db->insert($data);

    $db->insertGetId($data);

    $Db->insertGetId($data);


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

    2018-07-20

  • https://img1.sycdn.imooc.com//5b513a520001682f08400491.jpg数据库查询的四个方法

    查看全部
  • protected $auto = [ "time" // 字段名 ]; protected $insert = [ "time_insert"// 字段名 ]; protected $update = [ "time_update" ]; protected $AutoW设置自动更新时间 protected $update_time = "字段名"; protected $instpert_time = "字段名"; // 获取设置值 public function get字段名Attr ($val) { return //根据不同条件返回不同的值 } // 新增设置值 public function set字段名Attr ($val) { return }
    查看全部
  • 模型时间戳:参考笔记https://www.imooc.com/notepad/20147e


    软删除:参考笔记https://www.imooc.com/notepad/2014a3

    查看全部
  • 软删除:

    首先在模型里面引用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);//删除

        }

    查看全部
  • thinkphp 提供的自动时间戳 自动记录时间比使用自动完成功能好,减少代码量;

    1.修改database.php配置文件中设置'auto_timestamp' 为true (不推荐的方法,此法数据库中所有表要有create_time和update_time这2个字段。)


    2.(推荐)在模型的类里添加属性:只对个别数据表字段create_time、update_time自动完成时间戳赋值,可以按如下操作:

    protected $autoWriteTimestamp = true; 

    //在模型中对约定的create_time、update_time自动完成时间戳赋值,如果不用默认的create_time名称,这样设置

    protected $createTime = 'create_at';

    protected $updateTime = 'update_at';

    // 禁用某个时间戳,可以这样设置

    //protected $createTime = false; //表示这个创建自动记录时间戳禁用


    查看全部
  • 图2

    auto (新增及更新的时候自动完成的属性数组)


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


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


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


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


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


    命名规范是  -> set + 属性名的驼峰命名  + Attr


    格式: protected $insert = [

            'insert'//字段名

                               ];

    public function setInsertAttr(){

            return time();

                                        }

    查看全部
  •  #获取器 get+字段名+Attr 命名规范是  -> get + 属性名的驼峰命名 + Attr

     #修改器 set+字段名+Attr 命名规范是  -> set + 属性名的驼峰命名  + Attr

    查看全部

举报

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

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