Heim  >  Artikel  >  Backend-Entwicklung  >  ThinkPHP 自动创建数据、自动验证、自动完成详细例证介绍(十九)

ThinkPHP 自动创建数据、自动验证、自动完成详细例证介绍(十九)

WBOY
WBOYOriginal
2016-06-13 12:12:56872Durchsuche

ThinkPHP 自动创建数据、自动验证、自动完成详细例子介绍(十九)


1:自动创建数据

//$name=$_POST['name'];
//$password=$_POST['password'];  ---这个注册页面传过来的POST值
      下面用了自动穿件create方法就可以不用这个,会行动绑定
$user =M('User');
$User->create();   //会将传过来的$_POST数据对应到数据库的字段
$user->add();   //就可以直接写入


2:自动验证(只需要在Model类里面定义$_validate属性)

使用步骤(注册验证User表)


一:创建User表自定义的Mode  --->Home\Lib\Model\UserModel.class.php

//注意:code username password....都是你表单里面的name值,要对应
//表单里面字段名字定义的
class UserModel extends Model{
protected $_validate=array(
array('code','require','验证码必须填写!'),
array('code','checkCode','验证码错误!',0,'callback',1),  //使用回调函数checkCode
array('username','require','用户必须填写!'),
array('username','','用户已经存在',0,'unique',1),
array('username','/^\w{6,}$/','用户名必须6个字母以上',0,'regex',1),
array('repassword','password','确认密码不正确',0,'confirm'), 
);


protected functioncheckCode($code){
if(md5($code)!=$_SESSION['code']){
return false;
}else{
return true;
}
}
}
?>


//控制请值对应的注册方法

class RegisterAction extends Action{
public function doReg(){

$user=D('User');  //大D方法是会先去找你自定义的Mode,(使用上面创建的UserModel.class.php类)
                //如果有有自定义的用自定义的,否则用原始的  D等同M   M!=D
 
if(!$user->create()){//会自动去验证  返回一个布尔类型,成功则自动创建数据
$this->error($user->getError());//获取具体错误信息
}
$lastId=$user->add();
if($lastId){
$this->redirect('Index/index');
}else{
$this->error('用户注册失败');
}


}
}
?>

3:自动完成(做留言的例子)
步骤:
一:创建Message表自定义的Mode  --->Home\Lib\Model\MessageModel.class.php

class MessageModel extends RelationModel{
protected $_auto=array(
array('time','time',1,'function'),
array('uid','getId',1,'callback')

);
protected functiongetId(){
return $_SESSION['id'];
}
}
?>
        二:控制器中

class MessageAction extends Action{
public function doLiuyan(){
$message=D('Message');
//$message->time=time();
//$message->uid=$_SESSION['id'];   这2个值将在自定义MessageModel中自动填充完成

$message->add(); //返回值是新增的id号
}
}
?>







Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn