【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 ...
随机推荐
- 如何查看Isilon的节点的CPU的信息?
使用Isilon自带的命令 isi_hw_status 使用如下的命令 dmidecode --type processor 笔者只是想了解一下F800的CPU有多少个core.上面的命令都可以获得这 ...
- Lync 2013安装中遇到的关于SQL Mirroring的一次报错的解决
Problem Description ================= Following the Lync Deployment Wizard to setup Database Mirrori ...
- IO流 简介 总结 API 案例 MD
目录 IO 流 简介 关闭流的正确方式 关闭流的封装方法 InputStream 转 String 的方式 转换流 InputStreamReader OutputStreamWriter 测试代码 ...
- TextureView SurfaceView 简介 案例
简介 Android普通窗口的视图绘制机制是一层一层的,任何一个子元素或者是局部的刷新都会导致整个视图结构全部重绘一次,因此效率相对较低.视频或者opengl内容往往是显示在SurfaceView中的 ...
- 关于如何使用javascript监听滚动条滚动事件
在网页中,通常有一个通往网页顶部的锚点,现在我们就来实现它 Html代码: <a id="scrollup" href="#top" style=&quo ...
- XGBoost浅入浅出
http://wepon.me/ XGBoost风靡Kaggle.天池.DataCastle.Kesci等国内外数据竞赛平台,是比赛夺冠的必备大杀器.我在之前参加过的一些比赛中,着实领略了其威力,也取 ...
- IDEA初使用:解决搜狗输入法不跟随BUG
IDEA初使用:解决搜狗输入法不跟随BUG https://blog.csdn.net/qq_27905183/article/details/79119237 嗯,学习了: 然而,效果不明显:
- ZOJ 3456 Traveler Nobita 最小生成树
Traveler Nobita Time Limit: 2 Seconds Memory Limit: 65536 KB One day, Nobita used a time machin ...
- OpenGL ES 3.0之顶点缓冲
所谓顶点缓冲就是直接将顶点数据存储在gpu的一段缓冲区,不需要从cpu拷贝到gpu.提高了程序的运行效率. 操作步骤 1.创建顶点缓冲对象 GLuint vertexBufferID; 2.分配空间 ...
- 关于extern "C"(详细剖析)
[目录] 引言 extern “C”的前世今生 小心门后的未知世界 Q&A c++调用c的方法 c调用c++的方法 在你工作过的系统里,不知能否看到类似下面的代码. 这好像没有什么问题,你应该 ...