首页 > 技术文章 > thinkphp model

jiangfeilong 2019-07-25 14:37 原文

模型样板

<?php


namespace app\model;


use think\Db;
use think\Model;

class Admin extends Model
{
    //表名
    protected $table = 'admin';
    // 主键
    protected $pk = 'id';
    // 设置当前模型的数据库连接
    protected $connection = [
        // 数据库类型
        'type' => 'mysql',
        // 服务器地址
        'hostname' => '127.0.0.1',
        // 数据库名
        'database' => 'rongShop',
        // 数据库用户名
        'username' => 'jiang',
        // 数据库密码
        'password' => '1',
        // 数据库编码默认采用utf8
        'charset' => 'utf8',
        // 数据库表前缀
        'prefix' => '',
        // 数据库调试模式
        'debug' => false,
    ];

    // 重新设置数据表返回的属性名
    protected static function base($query)
    {
        $query->field(['id' => 'adminId','password' => 'password', "name" => 'adminName', 'email' => 'email']);
    }
}

查询

取出主键为1的数据
$user = User::get(1);
echo $user->name;

// 使用数组查询
$user = User::get(['name' => 'thinkphp']);

// 使用闭包查询
$user = User::get(function($query){
    $query->where('name', 'thinkphp');
});
echo $user->name;

取出多个数据:

// 根据主键获取多个数据
$list = User::all('1,2,3');
// 或者使用数组
$list = User::all([1,2,3]);
foreach($list as $key=>$user){
    echo $user->name;
}
// 使用数组查询
$list = User::all(['status'=>1]);
// 使用闭包查询
$list = User::all(function($query){
    $query->where('status', 1)->limit(3)->order('id', 'asc');
});
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');
User::where('status',1)->column('id,name'); // 同tp3的getField

 

$this::all(); //获取全部数据
dump($admin::find('6')); //6为要查询的主键的值, 当前语句获取主键等于6的元组数据
dump($admin::count()); // 统计表的元组个数  可以加表的列表当参数

 

插入

save(); //插入数据, 需要先对模型的全部域赋值才能插入
saveAll(list); //批量插入list可以为数组

查找并更新

推荐阅读