thinkphp create

先明白create方法的用处,是入库前对数据的处理。

直接上create方法的实例:

[php]  view plain  copy
  1. // 实例化User模型  
  2. $User = M('User');  
  3. // 根据表单提交的POST数据创建数据对象  
  4. $User->create();  
  5. // 把创建的数据对象写入数据库  
  6. $User->add();  

三行代码就可以完成入库操作。

其中create默认的是提取post的数据,如果要对指定数据进行处理:

[php]  view plain  copy
  1. $data['name'] = 'ThinkPHP';  
  2. $data['email'] = '[email protected]';  
  3. $User->create($data);  

create方法的工作流程:

1.获取数据源(默认是POST数组)

2.验证数据源合法性(非数组或者对象会过滤)

3.检查字段映射

4.判断提交状态(新增或者编辑  根据主键自动判断)

5.数据自动验证

6.表单令牌验证

7.表单数据赋值(过滤非法字段和字符串处理)

8.数据自动完成

9.生成数据对象(保存在内存)

create方法能自动识别是新增或修改,判断方法就是根据提交的数据是否有表主键,所以可以灵活运用这一点,比如下面例子:

[php]  view plain  copy
  1. public function save(){  
  2.         $users = D('users');  
  3.         if(!$users -> create()){  
  4.             // 如果创建失败 表示验证没有通过 输出错误提示信息  
  5.             $this->error($users ->getError());  
  6.         }else{  
  7.             if(I('post.id')){  
  8.                 $users -> save();  
  9.                 $this->success('修改成功',U('index'));  
  10.             }else{  
  11.                 $users -> add();  
  12.                 $this->success('添加成功',U('index'));  
  13.             }  
  14.         }  
  15.     }  

猜你喜欢

转载自blog.csdn.net/m0_37412958/article/details/80019649
今日推荐