ThinkPHP的create方法的一系列操作

1、数据操作状态

  create方法的第二个参数可以指定数据的操作状态,默认是自动判断的(写入[Model:MODEL_INSERT或者1]、更新[Model:MODEL_UPDATE或者2]、也可以自定义状态)

  可以自己定义:

  1. $Member = M("User");
  2. // 指定更新数据操作状态
  3. $Member->create($_POST,3);

2、字段合法性过滤

  如果在create方法之前调用field方法,则表示只允许创建指定的字段数据,其他非法字段将会被过滤,例如:

  $data[‘email‘] = ‘[email protected]‘;

  $data[‘status‘] = 1;

  $data[‘test‘] = ‘test‘;

  $User = M(‘User‘);

  $data = $User->field(‘name,email‘)->dump($data);

  如果我们有自定义模型类,对于数据新增和编辑操作的话,我们还可以直接在模型类里面通过设置insertFieldsupdateFields属性来定义允许的字段,例如:

  

  1. namespace Home\Model;
  2. use Think\Model;
  3. class UserModel extends Model{
  4. protected $insertFields = ‘name,email‘; // 新增数据的时候允许写入name和email字段
  5. protected $updateFields = ‘email‘; // 编辑数据的时候只允许写入email字段
  6. }

    

时间: 2024-10-08 13:06:17

ThinkPHP的create方法的一系列操作的相关文章

ThinkPHP中create()方法自动验证

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 原理: create()方法收集表单($_POST)信息并返回,同时触发表单自动验证,过滤非法字段, 在控制器中使用create()方法,(返回值为true/false),会自动触发模型类中的$_validate属性(为父类Model中的方法,在子类Model中重写),在$_validate中自定义验证规则(验证规则下面会详细说明),当create()方法没有数据即返回值为fals

解决ThinkPHP的Create方法失效而没有提示错误信息的问题

ThinkPHP中的数据创建Create方法是一个非常有用的功能,它自动根据表单数据创建数据对象(在表字段很多的情况下尤其明显) 但有时候该方法可能并未按照你期望的来工作,比如方法不工作而且还没有提示错误信息 这个时候你就要好好仔细下你的代码了,因为很有可能你写的代码不规范或是其他原因 以下是我因为自己的粗心而出现的问题:Create方法失效而没有提示错误信息 /** * 编辑数据 * @Author NETFOX-HTL * @Email [email protected] * @DateTi

ThinkPHP:create()方法有什么用呢?

1.create方法可以对POST提交的数据进行处理(通过表中的字段名称与表单提交的名称对应关系自动封装数据实例),例如user表中有一个字段名叫"username",如果表单中有一个<input name="username" value="小明">,那么$User = M('User'); $data = $User->create(); echo $data['username'];就会输出"小明",不

ThinkPHP教程_PHP框架之ThinkPHP(八)【CRUD与连贯操作】

一.CRUD ThinkPHP提供了灵活和方便的数据库操作方法,其中最基本的就是CRUD四个操作,只有掌握了最基本的CRUD操作,才能更好的运用更多实用的数据库操作方法 CRUD操作通常与连贯操作配合 1.创建操作 使用add()方法或addAll()方法 ·add()方法 可以直接传入要插入的数据,而且会在插入之前会过滤掉数据表中不存在的字段以及非法的数据类型(例如对象.数组等非标量数据).若当前表有主键自动增长并且插入记录成功的话,则返回所插入记录主键值 如果在执行add()操作之前已经创建

ThinkPHP的field方法的用法总结

ThinkPHP的连贯操作方法中field方法有很多的使用技巧,field方法主要目的是标识要返回或者操作的字段,下面详细道来. 1.用于查询 在查询操作中field方法是使用最频繁的. $Model->field('id,title,content')->select(); 这里使用field方法指定了查询的结果集中包含id,title,content三个字段的值.执行的SQL相当于: SELECT id,title,content FROM table 当然,除了select方法之外,所有

thinkphp中limit方法

limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多.ThinkPHP的limit方法可以兼容所有的数据库驱动类的. 用法 限制结果数量 例如获取满足要求的10个用户,如下调用即可: $User = M('User');$User->where('status=1')->field('id,name')->limit(10)->select(); limit方法也可以用于写操作,例如更新满足要求的3条数据: $User = M('U

[ThinkPHP]延迟更新方法的陷阱

[code] $M = D('Article'); $M->where(array('id'=>1))->setLazyInc('click',1,600);//文章访问数量+1,延迟更新 $list = $M->where(array('status'=>0))->limit("0,10")->select();//读取文档列表 [/code] 这时候你打印$list,会发现只有一条记录. 将sql语句打印出来会发现: [code] sele

thinkphp中data方法

data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值的方式生成数据对象,然后写入数据库,例如: $Model = D('User');$Model->create();// 这里略过具体的自动生成和验证判断$Model->add(); 又或者直接对数据对象赋值,例如: $Model = M('User');$Model->name = '流年

TP关于create方法的第二个参数

TP create方法第二个参数,指定创建数据的操作状态:默认情况下是自动判断是写入还是更新操作: 也可以显式指定操作状态,例如: $Member = M("User"); // 指定更新数据操作状态 $Member->create($_POST,Model::MODEL_UPDATE); 系统内置的数据操作包括Model::MODEL_INSERT(或者1)和Model::MODEL_UPDATE(或者2),当没有指定的时候,系统根据数据源是否包含主键数据来自动判断,如果存在主