Laravel博客系统开发--注册功能

25 篇文章 1 订阅

注册功能

1.定义注册路由

代码如下

Route::group(['prefix'=>'admin','namespace'=>'Admin'],function (){
    //登录
    Route::match(['get','post'],'/','Index@login');
    //注册
    Route::match(['get','post'],'register','Index@register');
});
2.引入HTML模板

form表单代码如下

   <form>
            <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="conpass" 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" id="register" class="btn btn-primary btn-block" value="注册">
            </div>
            <div class="loginbox-signup">
                <a href="{{url('admin')}}">返回登录</a>
            </div>
	</form>
3.利用jquery的ajax提交form表单数据给Index控制器下register方法

代码如下

    $(function () {
        $('#register').click(function () {
            $.ajax({
                url:"{{url('admin/register')}}",
                data:$('form').serialize(),
                type:'post',
                dataType:"json",
                success:function (data) {
                    if(data.code==1){
                        layer.msg(data.msg,{
                           icon:6,
                           time:2000,
                        },function () {
                            location.href=data.url;
                        });
                    }else {
                        layer.open({
                            title:"注册失败",
                            content:data.msg,
                            icon:5,
                            anim:6
                        });
                    }
                }
            });
            return false;
        });
    });
4.编写Index控制器下register方法,并接受ajax提交过来的数据,并将数据提交给Admin模型中register方法处理

代码如下

    //注册
    public function register()
    {
        if (request()->isMethod('post')){
            $data=request()->only(['username','password','conpass','nickname','email']);
            $result=(new Admin())->register($data);
            if ($result==1){
                $msg=[
                    'code'=>1,
                    'msg'=>"用户注册成功",
                    'url'=>url('admin')
                ];
            }else{
                $msg=[
                    'code'=>0,
                    'msg'=>$result
                ];
            }
            return $msg;
        }
        return view('admin.index.register');
    }
5.编写Admin模型中register方法,创建验证器验证数据

代码如下:

   //注册
    public function register($data){
        $rule=[
            'username'=>'bail|required|unique:admins',
            'password'=>'required',
            'conpass'=>'required|same:password',
            'nickname'=>'required',
            'email'=>'required|email|unique:admins'
        ];
        $msg=[
            'username.required'=>'用户名不能为空',
            'username.unique'=>'用户名已存在',
            'password.required'=>'密码不能为空',
            'conpass.required'=>'确认密码不能为空',
            'conpass.same'=>'两次输入密码不一致',
            'nickname.required'=>'昵称不能为空',
            'email.required'=>'邮箱不能为空',
            'email.email'=>'邮箱格式不正确',
            'email.unique'=>'此邮箱已经注册过'
        ];
        $validator=Validator::make($data,$rule,$msg);
        if ($validator->fails()){
            return $validator->errors()->first();
        }
        $result=$this->create($data);
        if ($result){
            return 1;
        }else{
            return "用户注册失败";
        }
    }
6.效果图

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值