thinkphp data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法。
用法
写操作
通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如:
- $Model = D('User');
- $Model->create();
- // 这里略过具体的自动生成和验证判断
- $Model->add();
又或者直接对数据对象赋值,例如:
- $Model = M('User');
- $Model->name = '流年';
- $Model->email = 'thinkphp@qq.com';
- $Model->add();
那么data方法则是直接生成要操作的数据对象,例如:
- $Model = M('User');
- $data['name'] = '流年';
- $data['email'] = 'thinkphp@qq.com';
- $Model->data($data)->add();
注意:如果我们同时使用create方法和data创建数据对象的话,则后调用的方法有效。
data方法支持数组、对象和字符串,对象方式如下:
- $Model = M('User');
- $obj = new stdClass;
- $obj->name = '流年';
- $obj->email = 'thinkphp@qq.com';
- $Model->data($obj)->add();
字符串方式用法如下:
- $Model = M('User');
- $data = 'name=流年&email=thinkphp@qq.com';
- $Model->data($data)->add();
也可以直接在add方法中传入数据对象来新增数据,例如:
- $Model = M('User');
- $data['name'] = '流年';
- $data['email'] = 'thinkphp@qq.com';
- $Model->add($data);
但是这种方式data参数只能使用数组。
当然data方法也可以用于更新数据,例如:
- $Model = M('User');
- $data['id'] = 8;
- $data['name'] = '流年';
- $data['email'] = 'thinkphp@qq.com';
- $Model->data($data)->save();
当然我们也可以直接这样用:
- $Model = M('User');
- $data['id'] = 8;
- $data['name'] = '流年';
- $data['email'] = 'thinkphp@qq.com';
- $Model->save($data);
同样,此时data参数只能传入数组。
在调用save方法更新数据的时候 会自动判断当前的数据对象里面是否有主键值存在,如果有的话会自动作为更新条件。也就是说,下面的用法和上面等效:
- $Model = M('User');
- $data['name'] = '流年';
- $data['email'] = 'thinkphp@qq.com';
- $Model->data($data)->where('id=8')->save();
读操作
除了写操作外,data方法还可以用于读取当前的数据对象,例如:
- $User = M('User');
- $map['name'] = '流年';
- $User->where($map)->find();
- // 读取当前数据对象
- $data = $User->data();
thinkphp data方法的更多相关文章
- ThinkPHP CURD方法盘点:data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...
- thinkphp中data方法
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...
- thinkphp 创建数据对象之data方法
创建数据对象:data()方法 1.功能:给模型对象$data赋值,将模型对象转化为数据对象 tip:模型对象与数据对象之间就差一个赋过值的$data; 2.方法:data()其源码如下: tip:源 ...
- thinkphp save()方法没有数据,保存失败解决办法
thinkphp save()方法没有数据保存返回0,保存失败返回false 可以对返回值判断一下就好 $ret = $model->save($data); //var_dump($ret ...
- ThinkPHP vendor 方法导入第三方类库
ThinkPHP 3.2 vendor()方法的深入研究及Phpqrcode的正确扩展 ThinkPHP vendor 方法导入第三方类库 第三方类库 第三方类库指除了 ThinkPHP 框架.应用项 ...
- data方法也是模型类的连贯操作方法之一,
data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值. 写操作 通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如: $Model = D(' ...
- HTML 5 的自定义 data-* 属性和jquery的data()方法的使用
人们总喜欢往HTML标签上添加自定义属性来存储和操作数据.但这样做的问题是,你不知道将来会不会有其它脚本把你的自定义属性给重置掉,此外,你这样做也会导致html语法上不符合Html规范,以及一些其它副 ...
- 繁星——jquery的data()方法
今天在看JQuery文档的时候偶然看到了data()方法,觉得挺好用的,这里做个记录. 这个方法用于在元素上存放数据,返回jQuery对象.在文档中提到V1.4.3 新增用法NEW data(obj) ...
- 利用jQuery内置的data()方法存储数据
jQuery提供了内置的data()方法,与DOM元素不同的是,它可以用来存储key/value类型的数据.数据的存储是很容易的: $('#myDiv').data('currentState', ' ...
随机推荐
- C# Task多线程
来自Eleven老师示例 private void btnTask_Click(object sender, EventArgs e) { Console.WriteLine(); Console.W ...
- [ECharts]"echarts/config" is not exists
今天在给Echarts折线图中的数据点增加点击事件的时候总是出现一个 Uncaught Error: [MODULE_MISS]"echarts/config" is not ex ...
- 【转】下载对应内核版本的asmlib
登陆oracle官网: http://www.oracle.com/ 注意:查询前,需要注册一个OTN账号,注册是免费的. 首页直接搜索“ASMLib”关键词(注意大小写) 进入搜索界面,点击第一项即 ...
- js的StringBuffer类
function StringBuffer(str){ var arr = []; str = str || ""; arr.push(str); this.append = fu ...
- CentOS 7.2安装配置Vsftp服务器
一.配置防火墙,开启FTP服务器需要的端口 CentOS 7.2默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- JAVA中对事物的理解
1.事物是一组操作数据的集合动作 (场景:再开发的时候相信大家都遇到主表和子表的插入问题,当主表插入成功时,子表没有插入成功,这时候我们就要把主表的数据回滚,这个时候我们就要用到事物了) 2.一组处理 ...
- lambda表达式与委托与线程初步谈论-基于刘铁锰视频观后操作
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- everyday two problems / 3.11 - 3.17
7日共14题,因为3.14两题相同,所以实际总共13题 13道题分为难易两部分,没有按照时间顺序排列题目 A.易: 1.覆盖数字的数量 题意: 给出一段从A - B的区间S(A,B为整数) 这段区间内 ...
- [TYVJ1730]二逼平衡树
[TYVJ1730]二逼平衡树 题目 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查 ...
- 火星人 2004年NOIP全国联赛普及组
题目描述 Description 人类终于登上了火星的土地并且见到了神秘的火星人.人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法.这种交流方法是这样的,首先,火星人把一个 ...