laravel-shop 学习系列文章(六)

本贴最后更新于 1698 天前,其中的信息可能已经时移俗易

用户模块

用户模块是绝大多数网站都需要的功能,电商系统也不例外,在我们这个电商系统里用户即买家。本章节将要实现用户的登录和注册功能。

用户认证脚手架

Laravel 自带了用户认证功能,我们将利用此功能来快速构建我们的用户中心。

首先执行认证脚手架命令,生成代码:

$ php artisan make:auth

命令 make:auth 会询问我们是否要覆盖 app.blade.php,因为我们在前面章节中已经自定义了『主要布局文件』—— app.blade.php,所以此处输入 no,如下:

file

使用 git status 来查看文件更改的状态:

file

打开 routes/web.php 查看修改了哪些内容:

routes/web.php

<?php

Route::get('/', 'PagesController@root')->name('root');
Auth::routes();

Route::get('/home', 'HomeController@index')->name('home');

Auth::routes(); 是 Laravel 的用户认证路由,这里不需要去修改。

再来看下面这一行:

 Route::get('/home', 'HomeController@index')->name('home');

我们已经有自己的主页了,不需要再次设置主页,直接删除即可。

同时删除 app/Http/Controllers/HomeController.phpresources/views/home.blade.php 两个文件:

$ rm -f app/Http/Controllers/HomeController.php resources/views/home.blade.php

由于我们删除了 /home 这个路由,因此需要把引用了这个路由的地方都修改掉:

修改 app/Http/Controllers/Auth/LoginController.phpapp/Http/Controllers/Auth/RegisterController.phpapp/Http/Controllers/Auth/VerificationController.phpapp/Http/Controllers/Auth/ResetPasswordController.php,将 $redirectTo 的值从 /home 改成 /

修改 app/Http/Middleware/RedirectIfAuthenticated.php,将 redirect('/home') 修改为 redirect('/')

手动在浏览器导航栏里输入 http://shop.test/login ,访问登录页面,看看效果:

file

顶部导航

接下来我们需要把顶部导航的登录和注册按钮指向真实的地址:

resources/views/layouts/_header.blade.php

<nav class="navbar navbar-expand-lg navbar-light bg-light fixed-top">
  <div class="container">
    .
    .
    .
      <ul class="navbar-nav navbar-right">
        <!-- 登录注册链接开始 -->
        @guest
        <li class="nav-item"><a class="nav-link" href="{{ route('login') }}">登录</a></li>
        <li class="nav-item"><a class="nav-link" href="{{ route('register') }}">注册</a></li>
        @else
        <li class="nav-item dropdown">
          <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
            <img src="https://cdn.learnku.com/uploads/images/201709/20/1/PtDKbASVcz.png?imageView2/1/w/60/h/60" class="img-responsive img-circle" width="30px" height="30px">
            {{ Auth::user()->name }}
          </a>
          <div class="dropdown-menu" aria-labelledby="navbarDropdown">
            <a class="dropdown-item" id="logout" href="#"
               onclick="event.preventDefault();document.getElementById('logout-form').submit();">退出登录</a>
            <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
              {{ csrf_field() }}
            </form>
          </div>
        </li>
        @endguest
        <!-- 登录注册链接结束 -->
      </ul>
    </div>
  </div>
</nav>

刷新浏览器,将鼠标移到右上角的登录和注册链接,可看到已经指向了对应的地址。

file

测试注册

先执行数据库迁移创建对应的数据库表结构:

$ php artisan migrate

然后通过顶部的注册链接访问注册页面,填入对应信息之后点击 Register 按钮

file

可以看到注册成功并且已经登录为 leo 这个用户

file

测试登录

点击右上角的下拉菜单中的『退出登录』按钮:

file

点击右上角『登录』按钮,填入上一步注册时使用的邮箱和密码:

file

点击 Login 提交:

file

可以看到登录成功。

Git 代码版本控制

接着让我们将这些文件加入到版本控制中:

$ git add -A
$ git commit -m "注册与登录"

链接:https://learnku.com/courses/laravel-shop/5.8/module-division/4215
来源: LearnKu 终身编程者的知识社区
如有侵权!请联系删除!

  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    164 引用 • 407 回帖 • 526 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 683 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...