ThinkPHP实现了ActiveRecords模式的ORM模型,采用了非标准的ORM模型:表映射到类,记录映射到对象。最大的特点就是使用方便和便于理解(因为采用了对象化),提供了开发的最佳体验,从而达到敏捷开发的目的。

下面我们用AR模式来换一种方式重新完成CURD操作。

创建数据

$User = M("User"); // 实例化User对象 // 然后直接给数据对象赋值 $User->name = 'ThinkPHP'; $User->email = 'ThinkPHP@gmail.com'; // 把数据对象添加到数据库 $User->add();

如果使用了create方法创建数据对象的话,仍然可以在创建完成后进行赋值

$User = D("User"); $User->create(); // 创建User数据对象,默认通过表单提交的数据进行创建 // 增加或者更改其中的属性 $User->status = 1; $User->create_time = time(); // 把数据对象添加到数据库 $User->add();

AR模式的数据查询比较简单,因为更多情况下面查询条件都是以主键或者某个关键的字段。这种类型的查询,ThinkPHP有着很好的支持。 先举个最简单的例子,假如我们要查询主键为8的某个用户记录,如果按照之前的方式,我们可能会使用下面的方法:

$User = M("User"); // 实例化User对象 // 查找id为8的用户数据 $User->where('id=8')->find();

用AR模式的话可以直接写成:

$User->find(8);

如果要根据某个字段查询,例如查询姓名为ThinkPHP的可以用:

$User = M("User"); // 实例化User对象 $User->getByName("ThinkPHP");

这个作为查询语言来说是最为直观的,如果查询成功,查询的结果直接保存在当前的数据对象中,在进行下一次查询操作之前,我们都可以提取,例如获取查询的结果数据:

echo $User->name; echo $User->email;

如果要查询数据集,可以直接使用:

// 查找主键为1、3、8的多个数据 $userList = $User->select('1,3,8');

更新记录

在完成查询后,可以直接修改数据对象然后保存到数据库。

$User->find(1); // 查找主键为1的数据 $User->name = 'TOPThink'; // 修改数据对象 $User->save(); // 保存当前数据对象

上面这种方式仅仅是示例,不代表保存操作之前一定要先查询。因为下面的方式其实是等效的:

$User->id = 1; $User->name = 'TOPThink'; // 修改数据对象 $User->save(); // 保存当前数据对象

删除记录

可以删除当前查询的数据对象

$User->find(2); $User->delete(); // 删除当前的数据对象

或者直接根据主键进行删除

$User = D("User"); $User->create(); // 创建User数据对象,默认通过表单提交的数据进行创建 // 增加或者更改其中的属性 $User->status = 1; $User->create_time = time(); // 把数据对象添加到数据库 $User->add();

0

activerecords php,ActiveRecord_帮助文档_Thinkphp手册 | 码农网相关推荐

  1. php验证码手册,验证码_专题_帮助文档_Thinkphp手册

    验证码_专题_帮助文档_Think Think/Verify类可以支持验证码的生成和验证功能. 生成验证码 下面是最简单的方式生成验证码: seover" style=" marg ...

  2. php方法帮助文档,Trace方法_帮助文档_Thinkphp手册

    Trace方法_帮助文档_Think 页面Trace只能用于有页面输出的情况,但是trace方法可以用在任何情况,而且trace方法可以用于AJAX等操作. Trace方法的格式:trace('变量' ...

  3. php上一页下一页代码博客,连接数据库上一页下一页_帮助文档_Thinkphp手册

    ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理.目前的数 ...

  4. python语法手册chm-python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  5. python帮助文档中文版下载-python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  6. python3.6库参考手册_python3.5.2官方帮助文档参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  7. python3.5中文手册chm_python3.5.2官方帮助文档 参考手册(CHM版)

    python3.5.2官方帮助文档 参考手册(CHM版) python3.5.2官方帮助文档 参考手册(CHM版),欢迎下载! 新语法特性: PEP 492,具有async和await语法的协同程序. ...

  8. 【酷玩集团】文档管理手册

    A3_1 酷玩集团文档管理手册 酷玩集团 目录 1.文档管理者职责 2.文档说明 2.1文档编制标准和指南 2.2文档质量等级 2.3文档具体类型 3.文档修改记录规定 4.文档统一格式规定 5.文档 ...

  9. Word文档TXT文档chm手册背景色设为护眼色

    Word文档TXT文档chm手册背景色设为护眼色 备忘 备忘 1.电脑桌面,右键,点击个性化. 2.点击窗口颜色. 3.点击高级外观设置,进入窗口颜色和外观设置界面. 4.在项目中选择窗口后,点击右侧 ...

最新文章

  1. Node.js的url模块简介
  2. Hadoop大数据平台环境搭建注意事项,分布式数据采集,武汉数道云科技
  3. C# FileStream
  4. Ubuntu 下搭建 Android 开发环境(图文)
  5. switch在内存中的实现机制
  6. web安全工具 御剑后台扫描layer子域名挖掘机
  7. 语音控制c语言程序,基于52单片机的智能家居语音控制系统电路设计(含源程序+原理图)...
  8. 交换机的主要功能和工作特性
  9. listview优化几种写法(原创)
  10. ajax type是get请求,jQuery的Ajax请求数据时type无法使用GET
  11. Sublime Text操作之CSS
  12. ubuntu新建python代码文件_ubuntu 下python的配置及更新方法和具体使用
  13. Js 怎么遍历json对象所有key及根据动态key获取值
  14. StackExchange.Redis官方文档(一)【基本用法】
  15. 将一串数字转为一个数组的形式,如1234 = [1234]
  16. 化工企业采购数字化带来的流程优化和自动化(三)
  17. HTML简单内容小结(1)
  18. 小米note android原生壁纸,安卓福利分享:全新三星Note8原生壁纸 每一张都是三星扛鼎之作!...
  19. 安卓通讯录项目_【安卓用户】通讯录同步助手使用教程
  20. MDK报错:NO BROWSE INFORMATION AVAILABLE IN...

热门文章

  1. 同步时序逻辑电路分析——数电第六章学习
  2. cdrx4自动排版步骤_教你怎样在CDR里怎样编号自动排版
  3. [ScyllaHide] 04 ScyllaHide配置报错原因定位
  4. 服务器连接不上的处理方式
  5. 2018-7-5,Python练习
  6. spring-xxx-xxx-0.0.1-SNAPSHOT.jar中没有主清单属性
  7. 坦克大战(Tank Battalion)------Java代码实现
  8. Unity-音频播放
  9. .rvm/gems/ruby-2.4.1@global/gems/cocoapods-1.5.0/lib/cocoapods/executable.rb:89: warning: Insecure
  10. 免费公共DNS的IP地址