一、登录业务代码
1.1 登录成功
在LoginController.php
中写入如下代码:
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
// 登录显示
public function index () {
// 指定视图的模版
return view('admin.login.login');
}
// 登录 别名 admin.login 根据别名生成url route(别名);
public function login(Request $request) {
// 表单验证
$post = $this->validate($request, [
'username' => 'required',
'password' => 'required'
], [
'username.required' => '没账号还想登录?你以为你是超人?'
]);
// 登录
$bool = auth() -> attempt($post);
// dump($bool);
// 判断是否登录成功
if ($bool) {
$model = auth() -> user();
// 登录成功
dump($model -> toArray());
}
}
}
在app/Models/User.php
中隐藏密码字段:
// 隐藏字段
protected $hidden = ['password'];
效果:
laravel
默认session
是存储在文件中,优化的话可以优化到memcached
或者redis
中。
实际项目中登录成功的话应该展示后台界面,接下来实现这个功能。
1.1.1 创建后台控制器和对应的模版
1、创建后台控制器
php artisan make:controller Admin/IndexController
<?php
namespace App\Http\Controllers\Admin;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class IndexController extends Controller
{
// 后台首页显示
public function index() {
return view('admin.index.index');
}
}
2、后台首页路由
// 后台首页显示
Route::get('index', 'IndexController@index') -> name('admin.index');
3、对应的模版
新建index/index.blade.php
在U-ui.admin
中找到index.html
将其复制进去
4、增加欢迎页面路由
// 欢迎节目路由
Route::get('welcome', 'IndexController@welcome') -> name('admin.welcome');
5、增加控制器方法
// 欢迎页面
public function welcome() {
return view('admin.index.welcome');
}
6、新建欢迎模板
在U-ui.admin
中找到welcome.html
将其复制进去
7、修改index.blade.php
下的iframe
8、修改LoginController.php
中代码
判断用户是否已经登录过:
1.2 登录失败
在LoginController.php
中写入如下代码:
// withErrors 会把信息写入到验证错误信息提示中 特殊的session laravel中叫闪存
// 闪存 从设置好之后,只能在第1个http请求中获取到数据,以后就没有
return redirect(route('admin.login')) -> withErrors(['error' => '登录失败']);
效果:
二、退出登录
退出就是清空session
的过程:
auth() -> logout();
2.1 定义退出路由
// 退出
Route::get('logout', 'IndexController@logout') -> name('admin.logout');
2.2 找到退出按钮
2.3 控制器方法
// 退出
public function logout() {
// 用户退出
auth() -> logout();
// 跳转 带提示
return redirect(route('admin.login')) -> with('success', '请重新登录');
}
再在common
文件夹下创建msg.blade.php
来进行提示类型的判断:
<!-- 成功 -->
@if(session() -> has('success'))
<div class="Huialert Huialert-success"><i class="Hui-iconfont"></i>
{{session('success')}}
</div>
@endif
再在 login.blade.php
中加入:
效果:
在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。