🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 1.路由 routes/web.php ```php Route::namespace('Admin')->group(function () { Route::match(['GET', 'POST'], '/reg', 'Index@register'); }); ``` ## 2.注册页面 admin/index/register.balde.php ![](https://img.kancloud.cn/c9/14/c91489fae8368fe8eb08fc49038831aa_327x511.png) ```html <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>后台管理系统</title> <link rel="shortcut icon" href="assets/admin/img/logo.jpg" type="image/x-icon"> <link href="assets/admin/css/bootstrap.min.css" rel="stylesheet" /> <link href="assets/admin/css/font-awesome.min.css" rel="stylesheet" /> <link href="assets/admin/css/weather-icons.min.css" rel="stylesheet" /> <link id="beyond-link" href="assets/admin/css/beyond.min.css" rel="stylesheet" type="text/css" /> </head> <body> <div class="login-container"> <form action=""> <div class="loginbox bg-white"> <div class="loginbox-title">注册</div> <div class="loginbox-or"> <div class="or-line"></div> </div> <div class="loginbox-textbox"> <input type="text" class="form-control" name="username" placeholder="请输入用户名" /> </div> <div class="loginbox-textbox"> <input type="password" class="form-control" name="password" placeholder="请输入密码" /> </div> <div class="loginbox-textbox"> <input type="password" class="form-control" name="conpassword" placeholder="请再次输入密码" /> </div> <div class="loginbox-textbox"> <input type="text" class="form-control" name="nickname" placeholder="请输入昵称" /> </div> <div class="loginbox-textbox"> <input type="email" class="form-control" name="email" placeholder="请输入邮箱" /> </div> <div class="loginbox-submit"> <input type="submit" class="btn btn-primary btn-block" id="register" value="注册"> </div> <div class="loginbox-signup"> <a href="{{url('login')}}">登录账户</a> </div> </div> <div class="logobox"> <p class="text-center" style="font-size: 18px;font-weight: bold;text-shadow: 3px 3px 3px #FF0000;font-style: italic;"></p> </div> </form> </div> <script src="assets/admin/js/skins.min.js"></script> <!--Basic Scripts--> <script src="assets/admin/js/jquery.min.js"></script> <script src="assets/admin/js/bootstrap.min.js"></script> <script src="assets/admin/js/slimscroll/jquery.slimscroll.min.js"></script> <script src="assets/lib/layer/layer.js"></script> <!--Beyond Scripts--> <script src="assets/admin/js/beyond.js"></script> <script> $('#register').click(function () { var data = $('form').serialize(); $.ajax({ url: "{{url('reg')}}", data: data, type: 'post', dataType:'json', success:function(data){ if (data.code == 1) { layer.alert(data.msg,{ offset:'220px', icon:6, time:2000 },function () { window.location.href = data.url; }); } else { layer.open({ skin:'layui-layer-molv', offset:'220px', title:'注册失败', content:data.msg, icon: 5, }, function (index) { layer.close(index); window.location.reload(); }); } } }); return false;//禁止页面跳转 }) </script> </body> </html> ``` ## 3.控制器 Controller/admin/Index.php(reister操作方法) ```php public function register() { if (request()->isMethod('post')){ $data=request()->only(['username','password','conpassword','nickname','email']); $res=(new Admin)->register($data); if ($res == 1){ $msg=[ 'code'=>1, 'msg'=>'注册成功', 'url'=>url('admin/login') ]; }else{ $msg=[ 'code'=>0, 'msg'=>$res ]; } return $msg; } return view('admin.index.register'); } ``` ## 4.模型 Models/Admin.php(register方法) ```php public function register($data) { $rule=[ 'username'=>'bail|required|unique:admins', 'password'=>'required', 'conpassword'=>'required|same:password', 'nickname'=>'required', 'email'=>'required|email|unique:admins', ]; $msg=[ 'username.required'=>'请输入用户名', 'username.unique'=>'此用户名已存在', 'password.required'=>'请输入密码', 'conpassword.required'=>'请输入确认密码', 'conpassword.same'=>'两次输入密码不一致', 'nickname.required'=>'请输入昵称', 'email.required'=>'请输入邮箱', 'email.email'=>'邮箱格式不正确', 'email.unique'=>'此邮箱已注册!', ]; $validator=Validator::make($data,$rule,$msg); if ($validator->fails()){ return $validator->errors()->first(); } $res=$this->create($data); if ($res){ return 1; }else{ return '注册失败'; } } ``` # 注意: 因为前端注册时收到不可写入数据库的数据,因此需要下面的方法声明写入数据库的字段。 ``` protected $fillable=['username','password','nickname','email']; protected $dateFormat='U'; protected $dates=['created_at','updated_at','deleted_at']; ```