【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 ...
随机推荐
- weblogic——服务器搭建与配置
本次操作的内容:weblogic服务器搭建与配置服务 本次操作是主要围绕如何搭建weblogic服务器及配置服务,总共有两大步骤,可划分为六个小步骤: 选取已有环境,准备weblogic压缩包 安装w ...
- Lync 2013安装中遇到的关于SQL Mirroring的一次报错的解决
Problem Description ================= Following the Lync Deployment Wizard to setup Database Mirrori ...
- Laravel应用性能调优
这次性能测试方案中用到的优化技巧主要基于 Laravel 框架本身及其提供的工具. 关闭应用debugapp.debug=false 缓存配置信息php artisan config:cache 缓存 ...
- Tensorflow进行POS词性标注NER实体识别 - 构建LSTM网络进行序列化标注
http://blog.csdn.net/rockingdingo/article/details/55653279 Github下载完整代码 https://github.com/rockingd ...
- Shark简介、部署及编译小结
http://blog.csdn.net/pelick/article/details/11964291 Shark简介 Shark即Hive on Spark,本质上是通过Hive的HQL解析,把H ...
- Building LinkedIn’s Real-time Activity Data Pipeline
转自:http://blog.163.com/guaiguai_family/blog/static/20078414520138911393767/ http://sites.computer.or ...
- Linq-查询上一条下一条
//下一条 int pollid = poll.Where(f => f.PollID < CurrentId).OrderByDescending(o => o.PollID).F ...
- Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA
如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...
- wifidog 源码初分析(3)-转
上一篇分析了 接入设备 在接入路由器,并发起首次 HTTP/80 请求到路由器上时,wifidog 是如何将此 HTTP 请求重定向至 auth-server 的流程. 之后 接入设备 的浏览器接收到 ...
- innerWidth outerWidth
在jQuery中: 一.width()方法用于获得元素宽度: 二.innerWidth()方法用于获得包括内边界(padding)的元素宽度; 三.outerWidth()方法用于获得包括内边界(pa ...