SSs1995

一、数据模型作用

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

二、创建方式

  在模块下建立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\'])

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

 

分类:

技术点:

相关文章: