class FormModel extends Model { // 定义自动验证 // 定义自动完成
public function insert(){ //var_dump($_POST); $Form = D('Form'); if($Form->create()) { $result = $Form->add(); if($result) { $this->success('数据添加成功!'); }else{ $this->error('数据添加错误!'); } }else{ $this->error($Form->getError()); } //$this->assign('result',"Success!"); //$this->display(); }
我们在Home模块的Model目录下面创建FormModel.class.php文件,添加代码如下:
<?php
namespace Home\Model;
use Think\Model;
class FormModel extends Model {
// 定义自动验证
protected $_validate = array(
array('title','require','标题必须'),
);
// 定义自动完成
protected $_auto = array(
array('create_time','time',1,'function'),
);
}
主要是用于表单的自动验证和自动完成,具体用法我们会用另外的篇幅单独讲述,这里暂时先略过。我们
只要了解的是,如果使用D函数实例化模型类,一般需要对应一个数据模型类,而且create方法会自动把表
单提交的数据进行自动验证和自动完成(如果有定义的话),如果自动验证失败,就可以通过模型的
getError方法获取验证提示信息,如果验证通过,就表示数据对象已经成功创建,但目前只是保存在内存
中,直到我们调用add方法写入数据到数据库。这样就完成了一个完整的Create操作,所以可以看到
ThinkPHP在创建数据的过程中使用了两步:
第一步,create方法创建数据对象
第二步,使用add方法把当前的数据对象写入数据库
当然,你完全可以跨过第一步,直接进行第二步,但是这样的预处理有几个优势:
1. 无论表单有多复杂,create方法都可以用一行代码轻松创建数据对象;
2. 在写入数据之前,可以对数据进行验证和补充;
其实create方法还有很多的功能操作,目的只有一个,确保写入数据库的数据安全和有效。
我们来验证下表单提交的效果,当我们不输入标题就直接提交表单的话,系统会给出标题必须这样的提示
信息。

 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号