laravel实战项目之登录和退出逻辑

一、登录业务代码

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.phpU-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">&#xe6a6;</i>
        {{session('success')}}
    </div>
@endif

在这里插入图片描述


再在 login.blade.php 中加入:
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述

在学习的php的路上,如果你觉得本文对你有所帮助的话,那就请关注点赞评论三连吧,谢谢,你的肯定是我写博的另一个支持。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你华还是你华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值