🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1.路由 routes/web.php ```php Route::namespace('Admin')->group(function () { Route::match(['GET', 'POST'], '/login', 'Index@login'); }); ``` 1.登录页面 admin/index/login.balde.php ![](https://img.kancloud.cn/49/1d/491d36aebd02d766ba8ab02f42857baa_319x366.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-forgot"> <a href="">忘记密码?</a> </div> <div class="loginbox-submit"> <input type="submit" class="btn btn-primary btn-block" id="login" value="登录"> </div> <div class="loginbox-signup"> <a href="#">注册账户</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> $('#login').click(function () { var data = $('form').serialize(); $.ajax({ url: "{{url('login')}}", 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> ``` 2.控制器 Controller/admin/Index.php ```php <?php namespace App\Http\Controllers\Admin; use App\Models\Admin; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class Index extends Controller { //登录 public function login(){ if (request()->isMethod('post')){ $data =request()->only(['username','password']); $admins=new Admin(); $res=$admins->login($data); if ($res == 1) { $msg=[ 'code'=>1, 'msg'=>'登录成功', 'url'=>url("admin/index") ]; }else{ $msg=[ 'code'=>0, 'msg'=>$res ]; } return $msg; } return view('admin.index.login'); } } ``` 3.模型 Models/Admin.php ```php <?php namespace App\Models; use Illuminate\Support\Facades\Validator; use Illuminate\Database\Eloquent\Model; class Admin extends Model { //登录处理 public function login($data) { $rules=[ 'username'=>'bail|required', 'password'=>'required' ]; $messages=[ 'username.required'=>'用户名不能为空', 'password.required'=>'密码不能为空' ]; $validator= Validator::make($data, $rules, $messages); if ($validator->fails()){ return $validator->errors()->first(); } $res=$this->where($data)->first(); if ($res){ $sessionData=[ 'id'=>$res['id'], 'nickname'=>$res['nickname'], 'is_super'=>$res['is_super'] ]; session(['admin'=>$sessionData]); if ($res['status'] != 1){ return '账号被禁用,请联系站长'; } return 1; }else{ return '用户名或者密码错误'; } } } ```