tp5数据库操作 模型层

一、数据模型作用

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

二、创建方式

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

    namespace app\demo\model;
    
    use think\Model;
    class Ceshi extends Model{
        
    }

三、控制器调用,查询

    namespace app\demo\controller;
    //调用类继承
    use think\Controller;
    //调用模型
    use app\demo\model\Ceshi;
    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 app\demo\controller;
    //调用类继承
    use think\Controller;
    //调用模型
    use app\demo\model\Ceshi;
    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'])

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

 

posted @ 2018-08-07 14:59  ❉SSs  阅读(950)  评论(0编辑  收藏  举报