tp5 中 model 的新增方法

//默认主键为自动识别,如果需要指定,可以设置属性:

namespace app\index\model;

use think\Model;

class User extends Model
{
protected $pk = 'uid';
// 设置当前模型对应的完整数据表名称
protected $table = 'think_user'; }

使用助手函数model()快速实例化模型(推荐)

 public function save(){
$user = model('User');  // 使用model 即可快速实例化模型,不必使用 $user = new User();
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com']
];
$user->saveAll($list);
}

 save()方法添加单条数据

//使用data方法批量添加数据:
namespace app\index\controller;
use think\Controller;
use think\Request;
use app\index\model\User as UserModel;
public function save(){
$user = new UserModel;
$user->data([
'name' => 'thinkphp',
'email' => 'thinkphp@qq.com'
]);
$count = $user->save();  
dump($count)  // save方法新增数据返回的是写入的记录数
}
// 使用allowField过滤非数据表字段
public function save(Request $request){
$user = new UserModel();
// $_POST过来的数据中包含数据表中没有的字段
$user->data($request->param()); // 或者$_POST
// 只会保存数据表中有的字段
$user->allowField(true)->save();
}
// 希望某些指定字段写入
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
// 只写入name字段和email字段的值
$count = $user->allowField(['name','email'])->save();
dump($count);die;
}
// 获取自增id
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
$user->allowField(true)->save();
echo $user -> id; // 输出当前插入数据的主键
}
   //如果同一个实例里面多次新增数据,必须使用isUpdate(false)
public function save(Request $request){
$user = new UserModel();
$user->data($request->param());
$user->allowField(['name'])->save(); // 插入第一条数据
$user->name='thinkphp';
$user->email='thinkphp@qq.com';
$user->allowField(['email'])->isUpdate(false)->save(); // 再次插入一条数据
}

 saveAll()方法添加多条数据

// saveAll()同时添加多条数据
public function save(Request $request){
$user = new UserModel();
$list = [
['name'=>'thinkphp','email'=>'thinkphp@qq.com'],
['name'=>'chrdai','email'=>'chrdai@qq.com']
];
$user->saveAll($list);
}
// saveAll()方法中若数据中带有主键,则为更新操作,若不带主键则为插入操作
public function save(Request $request){
$user = new UserModel();
$list = [    // 此处的两条数据将执行更新操作
['id'=>1,'name'=>'thinkphp_update','email'=>'thinkphp@qq.com'],
['id'=>2,'name'=>'chrdai_update','email'=>'chrdai@qq.com']
];
$user->saveAll($list);
}

静态调用create方法创建并写入

// 使用create方法可以直接将数据插入到数据库
public function save(Request $request){
$user = UserModel::create([
'name'=>'thinkphp',    // 此处的字段必须是数据表中存在的
'email'=>'thinkphp@qq.com'
]);
echo $user->id; // 获取当前插入数据的id
}

【TP5.0】model的操作方法的更多相关文章

  1. 【TP3.2与TP5.0区别】

    Tp3.2 和 Tp5.0之间的区别   5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正 ...

  2. ThinkPHP5.0框架开发--第5章 TP5.0 控制器

    ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...

  3. ThinkPHP5.0框架开发--第3章 TP5.0 配置

    ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...

  4. ThinkPHP5.0框架开发--第1章 Tp5.0安装

    ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...

  5. ThinkPHP5.0框架开发--第2章 TP5.0架构

    ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...

  6. ThinkPHP5.0框架开发--第8章 TP5.0 模型

    ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...

  7. ThinkPHP5.0框架开发--第7章 TP5.0数据库操作

    ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...

  8. Tp5.0 PHPMailer邮件发送

    今天突然想起来邮件发送,就看了一下PHPmailer,其实这个用起来很简单,都是封装好的 https://github.com/PHPMailer/PHPMailer,直接下载下来之后,把他放入TP5 ...

  9. tp5.0.7 修复getshell漏洞

    这里 接手项目用的是 tp5.0.7 突然想到前段事件的tp bug 事件 就试了下 发现确实有这种情况 参考帖子: https://bbs.ichunqiu.com/thread-48687-1-1 ...

随机推荐

  1. [leetcode]Partition List @ Python

    原题地址:https://oj.leetcode.com/problems/partition-list/ 题意: Given a linked list and a value x, partiti ...

  2. Maven WEB 项目使用ProGuard进行混淆,最佳解决方案

    Maven WEB 项目使用ProGuard进行混淆,最佳解决方案 近期公司的Android项目做了混淆,虽说对于保护代码并不是100%的,但混淆后的代码可以使那些不法份子难以阅读,这样也能对代码的保 ...

  3. ul里不能直接嵌套div(在ie7以前版本)

    平时为了写某个js效果,从而忽略了标签的嵌套 从而导致了IE6-7混乱,在ul下,直接嵌套div,在ie7以前版本,会出现的状况是:div会被离它最近的li包裹住. 请看dome <ul cla ...

  4. Centos curl ssl 替换 NSS 为 OpenSSL

    参考:https://www.latoooo.com/xia_zhe_teng/368.htm 我的系统版本是 Centos 7 64位.为了方便,先安装常用的开发环境. yum groupinsta ...

  5. Android -- MediaRecord

    MediaRecord 集成了录音.编码.压缩等,支持少量的录音音频格式,大概有.aac .amr .3gp 优点:大部分以及集成,直接调用相关接口即可,代码量小 缺点:无法实时处理音频:输出的音频格 ...

  6. Android -- Property Animation

    3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中又引入了一个新的动画系统:property animation,这三 ...

  7. hdu 3665Seaside(简单floyd)

    Seaside Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Su ...

  8. 用php实现交互式工具——How do I write a command-line interactive PHP script?

    I want to write a PHP script that I can use from the command line. I want it to prompt and accept in ...

  9. 浅析ARM公司在物联网领域的战略布局(转)

    随着ARM芯片的出货量越来越多,自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显.最初ARM公司仅是出售自己的知识产权(IP核)给各大芯片公司,由于最初ARM公司处于劣势,所以给芯片厂商很 ...

  10. 【math】梯度下降法(梯度下降法,牛顿法,高斯牛顿法,Levenberg-Marquardt算法)

    原文:http://blog.csdn.net/dsbatigol/article/details/12448627 何为梯度? 一般解释: f(x)在x0的梯度:就是f(x)变化最快的方向 举个例子 ...