在处理表单提交的数据的时候,建议尽量采用Think\Model类提供的create方法首先进行数据创建,然后再写入数据库。

大理石平台厂家

create方法在创建数据的同时,可以进行更为安全的处理操作,而且这一切让你的表单处理变得更简单。

使用create方法创建数据对象的时候,可以使用数据的合法性检测,支持两种方式:

一、可以配置insertFields 和 updateFields属性

可以分别为新增和编辑表单设置insertFields和 updateFields属性,使用create方法创建数据对象的时候,不在定义范围内的属性将直接丢弃,避免表单提交非法数据。

insertFields 和 updateFields属性的设置采用字符串(逗号分割多个字段)或者数组的方式。

设置的字段应该是实际的数据表字段,而不受字段映射的影响。例如:

  1. namespace Home\Model;
  2. class UserModel extends \Think\Model{
  3. protected $insertFields = array('account','password','nickname','email');
  4. protected $updateFields = array('nickname','email');
  5. }

定义后,调用add方法写入用户数据的时候,只能写入'account','password','nickname','email'这几个字段,编辑的时候只能更新'nickname','email'两个字段。

在使用的时候,我们调用create方法的时候,会根据提交类型自动识别insertFields和updateFields属性:

  1. D('User')->create();

二、直接调用field方法

如果不想定义insertFields和updateFields属性,可以在调用create方法之前直接调用field方法,例如,实现和上面的例子同样的作用: 在新增用户数据的时候,使用:

  1. M('User')->field('account,password,nickname,email')->create();

而在更新用户数据的时候,使用:

  1. M('User')->field('nickname,email')->create();

这里的字段也是实际的数据表字段。

field方法也可以使用数组方式。

使用字段合法性检测后,你不再需要担心用户在提交表单的时候注入非法字段数据了。

最新文章

  1. BZOJ 1010: [HNOI2008]玩具装箱toy [DP 斜率优化]
  2. memcache的最佳实践方案
  3. JS汉语转拼音脚本
  4. python中的浅拷贝和深拷贝
  5. Redis学习笔记2-使用 Redis 作为 LRU 缓存
  6. C#获取HTML文件指定DIV内容
  7. Third scrum meeting - 2015/10/28
  8. html5,表格
  9. cvc-complex-type.2.4.a: Invalid content was found starting with element
  10. Spring 声明式事务,propagation属性列表及isolation(隔离级别)
  11. 《Publish or Perish》——从某种角度来说,我们也算和世界同步了呢。
  12. Linux命令 文件的建立移动删除
  13. Neo4j之坑
  14. Leetcode 226. Invert Binary Tree(easy)
  15. 使用ILSpy软件反编译.Net应用程序的方法及注意事项
  16. POJ 3713 Transferring Sylla【Tarjan求割点】
  17. js 定时更改div背景图片
  18. PID控制器(比例-积分-微分控制器)- III
  19. div界面浮动插件
  20. Perl CGI编程

热门文章

  1. Java HashMap问题
  2. Python文件路径操作
  3. Yii2 Composer
  4. tarjan求强连通+缩点——cf1248E
  5. 2018—2019—2 20165239《网络对抗技术》Exp7 网络欺诈防范
  6. (转)秒懂,Java 注解 (Annotation)你可以这样学 ---- 重要 注解定义与反射解析
  7. (转)短信vs.推送通知vs.电子邮件:app什么时候该用哪种方式来通知用户?
  8. undefined reference to `mysql_init'解决办法
  9. python 参数定义库argparse
  10. jsp2自定义标签开篇