zoukankan      html  css  js  c++  java
  • TP6模型操作

    TP6模型操作

    数据库的所有查询构造器方法模型中都可以支持,可以定义自己的方法,
    所以也可以把模型看成是数据库的增强版

    一、模型的定义

    <?php
    namespace appmodel;
    use thinkModel;
    class UserModel extends Model
    {
        
        protected $table= 'user'; //设置表名
        protected $pk = 'uid';    //设置主键ID
    }

     个人推荐Model类 都以 Model为后缀。例如:UserModel、

    二、模型的使用

    //引入模型类:
    use  appmodelUserModel;
    
    //模型使用
    User::where('id','>',10)->select();

     使用模型新增数据:

    $add_data = [
        'name'  =>  'thinkphp',
        'email' =>  'thinkphp@qq.com'
    ];
    $user = User::create($add_data);
    echo $user->id; // 获取自增ID

     使用模型批量新增数据:

    $user = new User;
    $list = [
        ['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
        ['name'=>'onethink','email'=>'onethink@qq.com']
    ];
    $user->saveAll($list);

     使用模型更新数据:

    $user = User::find(1);
    $user->name     = 'thinkphp';
    $user->email    = 'thinkphp@qq.com';
    $user->save();
    或直接更新
    User::update(['name' => 'thinkphp', 'id' => 1]);

     如果需要执行SQL函数更新,可以使用如下方法

    $user->score    =  Db::raw('score+1');
    字段过滤 ,只允许某些字段更新
    $user = User::find(1);
    // post数组中只有name和email字段会写入
    $user->allowField(['name', 'email'])->save($_POST);
    删除数据
    //1、先查询后删除
    $user = User::find(1);
    $user->delete();
    //2、根据条件删除
    User::where('id','>',10)->delete();
    //3、根据主键删除数据
    User::destroy(1);
    // 支持批量删除多个数据
    User::destroy([1,2,3]);
    查询单条数据:
    // 取出主键为1的数据
    $user = User::find(1);
    
    // 使用查询构造器查询满足条件的数据
    $user = User::where('name', 'thinkphp')->find();
    //如果希望查询数据不存在则返回一个空模型,可以使用
    $user = User::findOrEmpty(1);
    //用isEmpty方法来判断当前是否为一个空模型
    if (!$user->isEmpty()) {
        echo $user->name;
    }

    查询多条数据:

    // 根据主键获取多个数据
    $list = User::select([1,2,3]);
    // 对数据集进行遍历操作
    foreach($list as $key=>$user){
        echo $user->name;
    }
    
    //使用查询构造器
    $list = User::where('status', 1)->limit(3)->order('id', 'asc')->select();
    foreach($list as $key=>$user){
        echo $user->name;
    }
    
    // 获取某个用户的积分
    User::where('id',10)->value('score');
    // 获取某个列的所有值
    User::where('status',1)->column('name');
    // 以id为索引
    User::where('status',1)->column('name','id');

    但行好事,莫问前程!

    本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15512786.html

  • 相关阅读:
    剑指OFFER之复杂链表的复制(九度OJ1524)
    剑指OFFER之二叉树中和为某一值的路径(九度OJ1368)
    剑指OFFER之从二叉搜索树的后序遍历序列(九度OJ1367)
    剑指OFFER之从上往下打印二叉树(九度OJ1523)
    剑指OFFER之栈的压入、弹出序列(九度OJ1366)
    剑指OFFER之包含min函数的栈(九度OJ1522)
    剑指OFFER之顺时针打印矩阵(九度OJ1391)
    剑指OFFER之树的子结构(九度OJ1520)
    剑指OFFER之二叉树的镜像(九度OJ1521)
    VM安装CentOs7虚拟机后无法上网之解决方法
  • 原文地址:https://www.cnblogs.com/ypeih/p/15512786.html
Copyright © 2011-2022 走看看