zoukankan      html  css  js  c++  java
  • ThinkPHP的Model操作

    几种调用模型的方法:

    use thinkController;

    //use appindexmodelApp;
    use thinkLoader;

    class Index extends Controller
    {
    public function index()
    {
    //$res = App::get(2); 【第一种】
    //$app = new App; 【第二种】
    $app = Loader::model('App'); 【第三种】
    $res = $app->get(4);
    $res = $res->toArray();
    dump($res);
    }
    }

    使用模型查询数据的方法
    【获取一条记录】 get方法和find方法
    public function index()
    {
    $res = App::get(function($query){
    $query->where('id','eq',3)->field('name, status');
    });

    // $res = App::where('name','eq','ipad')->field('name, key')->find();
    $res = $res->toArray();
    dump($res);

    }

    【获取多条数据】【all】

    public function index()
    {

    // $res =App::all('1,2,3'); 【字符串形式】
    //$res = App::all([2,3,4]); //【数组形式】
    $res = App::all(function($query){
    $query->where('id','<',5)->field('name,key,status');
    });
    foreach($res as $val){
    $res = $val->toArray();
    dump($res);
    }

    }

    where方法直接获取

    public function index()
    {
    // $res = App::where('id','<',5)->select();
    // foreach($res as $val){
    // $res = $val->toArray();
    // dump($res);
    // }
    $res = App::where('id',1)->value('name');
    dump($res);

    }
    【获取单个字段一条】
    public function index()
    {
    $res = App::where('id',1)->value('name');
    dump($res);

    }

    【获取单个字段多条】
    public function index()
    {
    $res = App::column('name','key');
    dump($res);

    }

    使用模型添加数据

    【create方法】
    public function index()
    {
    // $res = App::create([
    // 'name'=>'三星',
    // 'is_encryption'=>1,
    // 'key'=>'sx',
    // 'status'=>1
    // ]);
    //当添加数据库没有的字段时,会报错,且不会添加,加第二个参数,true
    // $res = App::create([
    // 'name'=>'苹果mac',
    // 'is_encryption'=>1,
    // 'key'=>'mac',
    // 'status'=>1,
    // 'momo'=>'123'
    // ],true);

    //仅允许添加name和status两个字段
    $res = App::create([
    'name'=>'macbook',
    'is_encryption'=>1,
    'key'=>'book',
    'status'=>1,
    'momo'=>'123'
    ],['name','status']);
    dump($res);
    }

    【save方法】

    public function index()
    {
    // $appModel = new App;
    // $res = $appModel->save([
    // 'name'=>'手机',
    // 'is_encryption'=>1,
    // 'key'=>'sj',
    // 'status'=>1,
    // 'demo'=>111
    // ]);
    //过滤非数据库字段
    // $appModel = new App;
    // $res = $appModel->allowField(true)->save([
    // 'name'=>'手机',
    // 'is_encryption'=>1,
    // 'key'=>'sj',
    // 'status'=>1,
    // 'demo'=>1111
    // ]);

    $appModel = new App;
    $res = $appModel->allowField(['name','is_encryption'])->save([
    'name'=>'手机',
    'is_encryption'=>1,
    'key'=>'sj',
    'status'=>1,
    'demo'=>1111
    ]);
    dump($res);
    }

    【添加多条数据】
    public function index()
    {
    $appModel = new App;
    $res = $appModel->saveAll([
    ['name'=>'book'],
    ['name'=>'cat']
    ]);
    dump($res);
    }

    使用模型更新数据

    【update方法更新】
    public function index()
    {
    // $res = App::update([
    // 'id'=>8,
    // 'is_encryption'=>1
    // ]);

    //没有条件的话,update()加第二个参数
    // $res = App::update([
    // 'is_encryption'=>1,
    // ],['id'=>12]);

    //还支持闭包函数
    $res = App::update([
    'is_encryption'=>1
    ],function($quest){
    $quest->where("id",'=',13);
    });
    dump($res);
    }


    【where条件更新】【推荐】
    public function index()
    {
    // $res = App::where('id',5)->update([
    // 'key'=>'hw'
    // ]);
    // dump($res);
    }

    【save方法更新】【推荐】
    public function index()
    {

    // $appModel = new App;
    // $res = $appModel->save([
    // 'key' => 'mb',
    // ],['id'=>8]);

    $appModel = new App;
    $res = $appModel->save([
    'key' => 'sj11',
    ],function($quest){
    $quest->where('id',11);
    });
    dump($res);
    }

    【saveAll更新】
    public function index()
    {
    $appModel = new App;


    $res = $appModel->saveAll([
    ['id'=>12,'key'=>'bk'],
    ['id'=>13,'key'=>'cat']
    ]);
    dump($res);
    }

    使用模型删除数据

    [destroy方法]
    public function index()
    {
    // $res = App::destroy(['id'=>11]);
    // dump($res);

    // $res = App::destroy(function($quest){
    // $quest->where('id',13);
    // });

    dump($res);
    }


    [delete方法]
    public function index()
    {
    // $appModel = App::get(12);
    // $res = $appModel->delete();

    $res = App::where('id','>',7)->delete();
    dump($res);
    }

    【最大值,最小值,平均值,总条数】

    public function index()
    {
    // $res = App::count();

    // $res = App::where('id','>',3)->count();

    //$res = App::max('id');
    //$res =App::where('id','>',5)->max('id');

    //$res = App::sum('id'); 【总和】

    //$res =App::avg('id'); 【平均值】

    //$res =App::min('id');【最小值】
    dump($res);
    }

  • 相关阅读:
    docker学习之路-nginx镜像(翻译)
    docker学习之路-centos下安装docker
    Angular复习笔记7-路由(下)
    Linux保证运行一个实例
    使用epoll实现简单的服务器
    vmware中centos、redhat桥接网络配置
    同步队列、线程池模式服务器消息处理类
    ocilib linux编译安装
    redhat6.5安装oracle11_2R
    redhat6.5安装yum
  • 原文地址:https://www.cnblogs.com/Caveolae/p/7150650.html
Copyright © 2011-2022 走看看