Heim > Fragen und Antworten > Hauptteil
Bei der Verifizierung des Mobiltelefons wird ohne Aufforderung zur Registrierungsseite gesprungen
Die vorherige E-Mail-Adresse und der Benutzername können normal verifiziert werden
王先生2019-11-06 09:15:09
控制器
namespace app\index\controller;
use app\common\controller\Base;
use think\facade\Request;
use app\common\model\User as UserModel;
class User extends Base
{
//注册页面
public function register()
{
$this->assign('title','用户注册');
return $this->fetch();
}
//处理用户提交的注册信息
public function insert()
{
if(Request::isAjax())
{
/**
* 使用模型来创建数据
*/
//验证数据
$data= Request::post();//等到要验证的数据
$rule= 'app\common\validate\User';//自定义的验证规则
$res=$this->validate($data,$rule);//开始验证数据
if(true !==$res)
{
//如果数据不正确,返回验证信息
return ['status'=>-1,'message'=>$res];
}
else
{
//如果数据正确
if(UserModel::create($data))
{
return ['status'=>1,'message'=>'恭喜,注册成功'];
}
else
{
return ['status'=>0,'message'=>'注册失败,请检查'];
}
}
}
else
{
$this->error("请求类型错误", 'register');
}
}
}
王先生2019-11-06 09:14:40
验证规则namespace app\common\validate\User.php:
namespace app\common\validate;
use think\Validate;
class User extends Validate
{
/**
* 当前验证规则
* @var array
*/
protected $rule = [
/**
* 另一种写法:
* 'name|用户名'=>'require|length:5,20|chsAlphaNum',
* 'email|邮箱'=>'require|email|unique:zh_user',
* 'password|密码'=>'require|alphaNum|length:6,20|confirm',
* 'mobile|手机'=>'require|mobile|unique:zh_user|number'
*/
'name|用户名'=>[
'require'=>'require',
'length'=>'5,20',
'chsAlphaNum'=>'chsAlphaNum',//仅允汉字,字符和数字
],
'email|邮箱'=>[
'require'=>'require',
'unique'=>'zh_user',//该字段值在zh_user表中是唯一性
'email'=>'email',
],
'mobile|手机'=>[
'require'=>'require',
'mobile'=>'mobile',
'unique'=>'zh_user',//该字段值在zh_user表中是唯一性
'number'=>'number',
],
'password|密码'=>[
'require'=>'require',
'alphaNum'=>'alphaNum',//仅允许字母加数字
'length'=>'6,20',//长度限定
'confirm'=>'confirm',//自动与password_confirm字段进行相等验证
],
];
}