• tp5数据库操作 模型层


    一、数据模型作用

      相同功能代码不用重复写多次

    二、创建方式

      在模块下建立model文件夹,php文件,文件名为数据库表名,其中类为数据库表名,继承Model类,模型层即为此表

        namespace appdemomodel;
        
        use thinkModel;
        class Ceshi extends Model{
            
        }

    三、控制器调用,查询

        namespace appdemocontroller;
        //调用类继承
        use thinkController;
        //调用模型
        use appdemomodelCeshi;
        class Test extends Controller{
            public function test(){
                //实例化模型
                $p = new Ceshi;
                //get id为1的数据,转为数组
                dump($p->get(1)->toArray());
                //类调用一条
                $data = Ceshi::get(['pin'=>'zhangsan']);
                dump($data->toArray());
                //类调用多条
                $data = Ceshi::all(['pin'=>'zhangsan']);
                foreach($data as $k => $v){
                    dump($v->toArray());
                }
            }
        }

      //find方法

           //$data = $p->where('pin','zhangsan')->find();

    四、增加数据

        namespace appdemocontroller;
        //调用类继承
        use thinkController;
        //调用模型
        use appdemomodelCeshi;
        class Test extends Controller{
            public function test(){
                //实例化模型
                $p = new Ceshi;
                //增加一条数据
                //方法一:赋值,保存
                $p->pin = 'yonghu1';
                $p->name = '用户1';
                $p->save();
                //方法二:批量赋值
                $p->data([
                    'pin'=>'yonghu2',
                    'name'=>'用户2'
                ]);
                $p->save();
                //只允许某些字段写入
                $p->data([
                    'pin'=>'yonghu3',
                    'name'=>'用户3',
                    'pwd'=>'123'
                ]);
                $p->allowField(['pin','name'])->save();
                //过滤不是该表中有的字段,
                allowField(true)
                //增加多条数据
                $list = [
                    ['pin'=>'yonghu3','name'=>'用户3'],
                    ['pin'=>'yonghu3','name'=>'用户3']
                ];
                $p->saveAll($list);
            }
        }

      助手函数

        model

        区别仅在于实例化那里更改为如下

        $p = model('Ceshi')

     五、更新

                //更新一条
                //实例化模型
                $p = new Ceshi;
                $p->save([
                    'pin'=>'yonghu4',
                    'name'=>'用户4'
                ],['id'=>10]);
                //更新多条
                $list 添加多条那里,每一行写个id

    六、删除

      静态方法:Ceshi::destroy([1,2,3])(括号内为主键的值)

      条件删除:Ceshi::destroy(['name'=>'1'])

    七、模型层查找字段改变显示值

  • 相关阅读:
    分页技术-总结
    整合GreyBox放大显示图片
    java web开发 图片上传功能
    我的fckeditor实践
    fckeditor使用(转)
    hibernate主键生成策略(转载)
    JfreeChart使用(转载)
    投票系统开发总结struts2,jfreechart,cookie应用,以及前端技术
    Spring MVC + MyBatis整合(IntelliJ IDEA环境下)
    动态代理
  • 原文地址:https://www.cnblogs.com/SSs1995/p/9428004.html
Copyright © 2020-2023  润新知