public function rules(){
//这里是规则验证他的数据库字段
return[
['username','required','message'=>"管理员账号不能为空",'on'=>['login','seekpass','changepass','adminadd','changemail']],
['userpass','required','message'=>"管理员密码不能为空",'on'=>['login','changepass','adminadd','changemail']],
['remmberMe','boolean','on'=>['login']],
['userpass','validatePass','on'=>['login'.'changemail']],
//yii无法判断密码是否正确,所以写个函数判断一下
//这里的validatepass其实是一个回调下面的方法
['useremail','required','message'=>"电子邮箱不能为空",'on'=>['seekpass','adminadd','changemail','regbymail']],
['useremail','email','message'=>'电子邮箱格式不正确','on'=>['seekpass','adminadd','changemail','regbymail']],
['useremail','unique','message'=>'电子邮箱已被注册','on'=>['adminadd','changemail','regbymail']],
['username','unique','message'=>'管理员已被注册','on'=>'adminadd'],
['useremail','validateEmail','on'=>['seekpass']],
['repass','required','message'=>"修改密码不能为空",'on'=>['changepass','adminadd']],
['repass','compare','compareAttribute'=>'userpass','message'=>'两次输入密码不一致','on'=>['changepass','adminadd']],
];
}
public function regByMail($data){
$data["User"]["username"]="imooc_".uniqid();
$data["User"]["userpass"]=uniqid();
$this->scenario="regbymail";
if($this->load($data)&& $this->validate()){
$mailer=Yii::$app->mailer->compose("createuser",['userpass'=>$data['User']['userpass'],'username'=>$data['User']['uername']]);
//这里是文本内容模板
$mailer->setFrom('18862417482@163.com');
$mailer->setTo($data['User']['useremail']);
$mailer->setSubject("商城新用户");
if($mailer->send() && $this->reg($data,"regbymail")){
return true;
}
return false;
}
}
public function reg($data ,$scenario="reg"){
$this->scenario=$scenario;
if($this->load($data) && $this->validate()){
$this->createtime=time();
$this->userpass=md5($this->userpass);
if($this->save(false)){
return true;
}
return false;
}
return false;
}这里2个form应该对应不同的控制器啊