## 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'];
```