ThinkPHP CURD方法之data方法详解_PHP
Jun 01, 2016 am 11:50 AM
thinkphp
ThinkPHP
ThinkPHP CURD方法的data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,很多开发人员却并不太习惯用这个方法,今天来讲解下如何用好data方法。
具体用法如下:
1.写操作
通常情况下我们都是通过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();
로그인 후 복사
2.读操作
除了写操作外,data方法还可以用于读取当前的数据对象,例如:
$User = M('User'); $map['name'] = '流年'; $User->where($map)->find(); // 读取当前数据对象 $data = $User->data();
로그인 후 복사
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7135
9


자바 튜토리얼
1534
14


라라벨 튜토리얼
1257
25


PHP 튜토리얼
1205
29


Cakephp 튜토리얼
1155
46



개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법

ThinkPHP6 데이터 암호화 및 암호 해독: 민감한 데이터 보안 보호
