TP6模型操作
TP6模型操作
数据库的所有查询构造器方法模型中都可以支持,可以定义自己的方法,
所以也可以把模型看成是数据库的增强版
一、模型的定义
<?php namespace app\model; use think\Model; class UserModel extends Model { protected $table= 'user'; //设置表名 protected $pk = 'uid'; //设置主键ID }
个人推荐Model类 都以 Model为后缀。例如:UserModel、
二、模型的使用
//引入模型类: use app\model\UserModel; //模型使用 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