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 '用户名或者密码错误';
}
}
}
```