ThinkPHP的create方法的一系列操作

时间:2022-02-01 23:31:18

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'] = 'thinkphp@gmail.com';

  $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. }