ThinkPHP5.0之执行添加的数据验证

ThinkPHP5.0之执行添加的数据验证

  1. 控制器
	 /**
     * 执行添加
     */
    public function postInsert(Request $request)
    {
    	// 获取数据
	    $data = $request->except(['action', 'repassword', '__token__']);
	    $data['password'] = md5($data['password']);
	    $data['status'] = 1;
	    $data['token'] = $request->param('__token__');
//	    dump($data);
	    // 数据验证
	    // 将获取的所有参数进行验证
	    $result = $this->validate($request->param(), 'AdminUsers');
	    // 不符合规则
	    if (true !== $result) {
	    	// 显示错误信息,阻止页面提交
	    	$this->error($result);
	    }
	    // 执行添加
	    $res = Db::table("users")->insert($data);
	    // 判断
	    if ($res) {
	    	$this->success('添加成功', '/adminusers/index');
	    } else {
	    	$this->error('添加失败');
	    }
    }
  1. 验证器类
	// 模块下创建validate目录,目录下创建一个控制器的名称的类
	<?php
	namespace app\admin\validate;
	
	use think\Validate;
	
	class AdminUsers extends Validate
	{
		// 验证规则
		protected $rule = [
			'username'   => 'require|unique:users|regex:[A-Za-z0-9]{4,8}|token',
			'password'   => 'require|regex:[A-Za-z0-9]{5,18}',
			'repassword' => 'require|regex:[A-Za-z0-9]{5,18}|confirm:password',
			'email'      => 'require|email',
		];
		
		// 提示信息
		protected $message = [
			'username.require'   => '用户名不能为空',
			'username.unique'    => '用户名已被注册',
			'username.regex'     => '用户名格式不正确,4-8位数字字母',
			'password.require'   => '密码不能为空',
			'password.regex'     => '密码格式不正确,5-16位数字字母',
			'repassword.require' => '确认密码不能为空',
			'repassword.regex'   => '确认密码格式不正确,5-16位数字字母',
			'repassword.confirm' => '两次密码不一致',
			'email.require'      => '邮箱不能为空',
			'email.email'        => '邮箱格式不正确',
		];
	}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章