laravel博客系统开发__登录功能

博客开发之登录功能

1.新建一个控制器为Index,模型为Admin(对应表名应该为复数admins),视图的新建,以及后台HTMl模板的引入

登录功能
通过AJAX异步提交form表单中的数据,将数据接收,再将数据传递给模型,最好验证再返回给控制器,由控制器传递给客户端。

控制器代码如下

//登录
    public function login()
    {
    
    
        if (request()->isMethod('post')){
    
    
            $data = request()->only(['username','password']);
            $result = (new Admin())->login($data);
            if ($result == 1){
    
    
                $msg = [
                    'code'  =>  1,
                    'msg'   =>  '登陆成功',
                    'url'   =>  url('admin/index'),
                ];
            }else{
    
    
                $msg = [
                    'code'  =>  0,
                    'msg'   =>  $result,
                ];
            }
            return $msg;
        }
        return view('admin.index.login');
    }

模型代码如下

//登录
    public function login($data)
    {
    
    
        $rule = [
            'username'  =>  'bail|required', //bail首次验证失败后不继续执行
            'password'  =>  'required',
        ];
        $msg = [
            'username.required'  =>  '用户名不能为空',
            'password.required'  =>  '密码不能为空',
        ];
        $validate = Validator::make($data,$rule,$msg);
        if ($validate->fails()){
    
    
            return $validate->errors()->first();
        }
        $result = $this->where($data)->first();
        if ($result){
    
    
            $sessionData = [
                'id'    =>  $result['id'],
                'nickname'    =>  $result['nickname'],
                'email' =>  $result['email'],
                'is_super'    =>  $result['is_super'],
            ];
            session(['admin'=>$sessionData]);
            if ($result['status'] != 0){
    
    
                return '该用户已被禁用';
            }
            return 1;
        }else{
    
    
            return '用户名或者密码错误';
        }
    }

HTML代码如下:引入layer插件,并且为登录按钮添加一个id为login

在这里插入图片描述
在这里插入图片描述
通过AJAX异步提交数据到控制器

$('#login').click(function () {
    
    
        $.ajax({
    
    
            url:"{
    
    {url('admin')}}",
            type:'post',
            data:$('form').serialize(),
            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;
    });

猜你喜欢

转载自blog.csdn.net/qq_44796093/article/details/108316835