随心的博客

好记性不如个烂笔头,随心记录!

返回顶部

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');

 

 

 

 

posted @ 2021-11-05 13:13  yangphp  阅读(1500)  评论(0编辑  收藏  举报