要使用模型的自动创建create方法的话,ThinkPHP的表单名称就是数据表的字段名称,如果担心这样不够安全,可以定义字段映射,来隐藏实际的数据表字段名称。
下面的例子就运用了字段映射定义。请注意看表单名称和字段的对应关系。
标题: | |
邮箱: | |
内容: | |
验证码: | 输入对应的数字 |
示例源码
控制器IndexAction类
<?php class IndexAction extends Action{ // 首页 public function index(){ $Form = D("Form"); $list = $Form->findAll(); $this->assign('list',$list); $this->display(); } // 处理表单数据 public function insert() { $Form = D("Form"); if($Form->create()) { $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(); } } ?>
模型 FormModel 类
<?php class FormModel extends Model { protected $_map = array( 'name'=>'title', 'mail'=>'email', 'remark'=>'content', ); // 自动验证设置 protected $_validate = array( array('name','require','标题必须!'), array('mail','email','邮箱格式错误!',2), array('remark','require','内容必须'), array('verify','require','验证码必须!'), array('verify','CheckVerify','验证码错误',0,'callback'), ); // 自动填充设置 protected $_auto = array( array('status','1','ADD'), array('create_time','time','ADD','function'), ); public function CheckVerify() { return md5($_POST['verify']) == $_SESSION['verify']; } } ?>