【TP5.0】model的操作方法
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的操作方法的更多相关文章
- 【TP3.2与TP5.0区别】
Tp3.2 和 Tp5.0之间的区别 5.0版本和之前版本的差异较大,本篇对熟悉3.2版本的用户给出了一些5.0的主要区别. URL和路由 5.0的URL访问不再支持普通URL模式,路由也不支持正 ...
- ThinkPHP5.0框架开发--第5章 TP5.0 控制器
ThinkPHP5.0框架开发--第5章 TP5.0 控制器 第5章 TP5.0 控制器 ============================================== 上次复习 1.路 ...
- ThinkPHP5.0框架开发--第3章 TP5.0 配置
ThinkPHP5.0框架开发--第3章 TP5.0 配置 第3章 TP5.0 配置 ========================================================= ...
- ThinkPHP5.0框架开发--第1章 Tp5.0安装
ThinkPHP5.0框架开发--第1章 Tp5.0安装 第1章 Tp5.0 安装 ======================================================== 今 ...
- ThinkPHP5.0框架开发--第2章 TP5.0架构
ThinkPHP5.0框架开发--第2章 TP5.0架构 第2章 TP5.0架构 ================================================== 上次复习 1.如 ...
- ThinkPHP5.0框架开发--第8章 TP5.0 模型
ThinkPHP5.0框架开发--第8章 TP5.0 模型 第8章 TP5.0 模型 ================================================= 今日学习 1. ...
- ThinkPHP5.0框架开发--第7章 TP5.0数据库操作
ThinkPHP5.0框架开发--第7章 TP5.0数据库操作 第7章 TP5.0数据库操作 ===================================================== ...
- Tp5.0 PHPMailer邮件发送
今天突然想起来邮件发送,就看了一下PHPmailer,其实这个用起来很简单,都是封装好的 https://github.com/PHPMailer/PHPMailer,直接下载下来之后,把他放入TP5 ...
- tp5.0.7 修复getshell漏洞
这里 接手项目用的是 tp5.0.7 突然想到前段事件的tp bug 事件 就试了下 发现确实有这种情况 参考帖子: https://bbs.ichunqiu.com/thread-48687-1-1 ...
随机推荐
- Emscripten教程之连接C++和JavaScript(三)
本文是Emscripten-WebAssembly专栏系列文章之一,更多文章请查看专栏.也可以去作者的博客阅读文章.欢迎加入Wasm和emscripten技术交流群,群聊号码:939206522. E ...
- 修改IP地址的PowerShell
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'" $wmi.E ...
- 条件随机场(CRF)理论及应用
http://x-algo.cn/index.php/2016/02/15/conditional-random-field-crf-theory-and-implementation/ 条件随机场( ...
- 10个在UNIX或Linux终端上快速工作的建议
你有没有惊讶地看到有人在Unix/ Linux中工作得非常快,噼里啪啦的敲键盘,快速的启动命令,飞快地执行命令? 在本文中,我共享了一些在Linux中快速.高效工作所遵循的Unix/ Linux命令实 ...
- Spark Structured Streaming:将数据落地按照数据字段进行分区方案
方案一(使用ForeachWriter Sink方式): val query = wordCounts.writeStream.trigger(ProcessingTime(5.seconds)) . ...
- IIS 7.5: HOW TO ENABLE TLS 1.1 AND TLS 1.2
In IIS 7.5, which is installed on Windows 2008 R2 servers, only SSL 3.0 and TLS 1.0 are enabled for ...
- 壮士断腕!WordPress宣布停止使用React
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,也可以把WordPress当作一个内容管理系统(CMS)来使用. WordPr ...
- Selenium2(webdriver)入门之TestNG的安装与简单使用
上一篇已经搭建好了Eclipse+selenium2的环境,这一篇主要记录下TestNG的使用. 一.在Eclipse中安装TestNG 1.打开eclipse-->help-->Inst ...
- canvas转图片
<script> var canvas, context2D, canvasimg, context2Dimg ,fontSize = 100; window.onload ...
- Java WebSockets
https://github.com/TooTallNate/Java-WebSocket Java WebSockets This repository contains a barebones W ...