返回 全球(切换) 

ThinkPHP表单提交自动验证和自动填充的技巧

2013/12/27 15:37:44180
详细描述


form类:
<?php
class FormModel extends Model {
    // 自动验证设置
    protected $_validate     =     array(//这里必须定义为$_validata用来验证
    array('title','require','标题必须!',1),
    array('email','email','邮箱格式错误!',2),
    array('content','require','内容必须'),
    array('verify','require','验证码必须!'),
    array('verify','CheckVerify','验证码错误',0,'callback'),//callback 使用方法验证,前面定义的验证规则是一个当前 Model 类的方法 ,这里可能有些不太理解
    //那就要看本类的最后一个方法了,现在明白了吧
    array('title','','标题已经存在',0,'unique','add'),//附加验证unique,unique 验证是否唯一,系统会根据字段目前的值查询数据库来判断是否存在相同的值
    );
  
    // 自动填充设置
    //由上面推导,下面这个是自动填充字段了,方便明了
    protected $_auto     =     array(//同样这里必须定义为$_auto
    array('status','1','ADD'),
    array('create_time','time','ADD','function'),//这里指明填充使用函数time()
    );
  

    public function CheckVerify() {
        return md5($_POST['verify']) == $_SESSION['verify'];
    }
}
?>

indexaction类:
<?php
class IndexAction extends Action{
    // 首页
    public function index(){
        $Form    = D("Form");//创建一个对象
        $list    =    $Form->top6('','*','id desc');//从数据库中读取最新6条记录,并且安id倒序输出
        $this->assign('list',$list);//把数据传到模板里
        $this->display();
    }
    // 处理表单数据
    public function insert() {//此方法对应表单的ACTION="__URL__/insert"
        $Form    =    D("Form");
        if($Form->create()) {//创建 Form 数据对象,默认通过表单提交的数据进行创建,为下面写入数据库做准备
            $Form->add();// 新增表单提交的数据 ,吧上面创建的数据对象提交
            $this->redirect();//返回上一个模块,页面跳转可以说是
        }else{
            header("Content-Type:text/html; charset=utf-8");
            exit($Form->getError().' [ <A HREF="javascript:history.back()">返回</A> ]');
        }
    }
    // 生成验证码
    //这个方法没什么好说的,固定格式
    public function verify() {
        import("ORG.Util.Image");
           Image::buildImageVerify(); //这里两个冒号是调用静态方法
    }
}
?>

 


联系我时,请说是在环球搜宝网看到的。
首页我的发布电话