Laravel搭建后台登录系统步骤详解

Laravel是一种流行的PHP框架,被广泛用于开发Web应用。本攻略将介绍如何使用Laravel框架搭建后台登录系统。

步骤1:创建Laravel应用程序

要开始使用Laravel框架,你需要在本地计算机上安装PHP和Composer。然后,使用Composer创建一个新的Laravel项目。

安装Composer后,按照以下命令创建Laravel项目:

composer create-project laravel/laravel myProject

运行该命令后,Laravel将在名为“myProject”的文件夹中创建一个新的项目。

步骤2:创建用户表

创建一个名为“users”的表,以存储用户登录信息。你可以使用以下迁移脚本创建此表:

php artisan make:migration create_users_table --create=users

运行该命令后,在/database/migrations目录中创建了一个新的迁移脚本。编辑此脚本以定义用户表的结构:

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration
{
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->increments('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('users');
    }
}

在该迁移脚本中,我们定义了一个包含五个字段的“users”表。分别是id、name、email、password和remember_token。运行以下命令执行迁移脚本:

php artisan migrate

成功执行迁移脚本后,将在数据库中创建“users”表。

步骤3:创建用户认证功能

Laravel提供了内置的用户认证功能。我们可以使用这些功能来创建后台登录系统。运行以下命令创建用户认证功能:

php artisan make:auth

运行该命令后,Laravel将在程序中创建一个名为“Auth”的控制器和视图文件,用于处理用户认证。

步骤4:设置默认控制器

Laravel将默认控制器设置为“WelcomeController”。我们需要将默认控制器更改为Auth控制器。打开/routes/web.php文件,在文件中添加以下代码:

Route::get('/', function () {
    return redirect('/login');
});

Auth::routes();

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

在该文件中,我们在路由中添加了一个名为“home”的路由,用于显示用户登录后的主页。接下来,将“Auth”控制器设置为默认控制器。打开/app/Http/Controllers/WelcomeController.php文件,并将其编辑为以下内容:

<?php

namespace App\Http\Controllers;

use Illuminate\Support\Facades\Auth;

class WelcomeController extends Controller
{
    public function index()
    {
        if (Auth::check()) {
            return redirect('/home');
        }

        return view('auth.login');
    }
}

在该文件中,我们使用check方法检查用户是否登录。如果用户已登录,则直接重定向到主页;否则,将用户重定向到登录页面。

步骤5:测试登录

现在我们已经完成了后台登录系统的设置。只需要运行程序并测试登录功能。命令如下:

php artisan serve

Laravel将为程序启动Web服务器,并在本地主机上启动应用程序。在Web浏览器中输入http://localhost:8000/login URL地址即可在登录页面中输入凭据。

打开程序并进行登录时,你将被重定向到显示用户信息的主页。在成功登录后将在数据库中创建一个新的记录,以保存用户数据。

示例1:Laravel中添加邮箱验证

添加邮箱验证的好处是避免用户忘记Login密码时无法找回。我们可以使用Laravel内置的邮箱验证,来验证新注册用户的邮箱。

步骤1:生成邮箱验证必需的静态页面

在Laravel执行如下命令生成邮箱验证的必需的静态页面:

php artisan make:auth

步骤2:在用户表里添加email_verified_at字段

编辑2014_10_12_000000_create_users_table.php,添加email_verified_at字段:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

步骤3:在RegisterController中添加sendEmailVerificationNotification方法

打开app/Http/Controllers/Auth/RegisterController.php文件,在类中添加如下方法即可完成邮箱验证:

namespace App\Http\Controllers\Auth;

use App\Models\User;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Validator;
use Illuminate\Foundation\Auth\RegistersUsers;

class RegisterController extends Controller
{
    use RegistersUsers;

    protected $redirectTo = '/home';

    public function __construct()
    {
        $this->middleware('guest');
    }

    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => ['required', 'string', 'max:255'],
            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
            'password' => ['required', 'string', 'min:8', 'confirmed'],
        ]);
    }

    protected function create(array $data)
    {
        return User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);
    }

    public function sendEmailVerificationNotification($user)
    {
        $user->sendEmailVerificationNotification();
    }
}

示例2:自定义认证登录后的Settings页

在Auth控制器的home()方法中可以作如下操作,以实现登录后直接进入Settings页:

public function home()
{
    if (Auth::guest()) {
        return redirect('/login');
    }

    if (!empty(Auth::user()->password)) {
        return redirect('/settings');
    } else {
        return view('auth.passwords.reset');
    }
}

在Laravel控制器中,我们可以使用Auth类检查用户是否已经登录,并使用Auth::user()获取当前认证的用户对象。使用上述方法进行判断,若存在password字段,跳转到设置页面;否则,跳转到密码重置页面。在路由文件中添加settings路由,这是访问Settings页面的唯一入口:

Route::get('/settings', function () {
    return view('settings');
})->middleware('auth');

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

上述routes/web.php中home路由在我们上文中有提到,它会被重定向到Auth控制器中的home()方法中。在该方法中使用我们上面的代码进行处理,最终跳转到/settings URL访问Settings页面。

以上就是Laravel搭建后台登录系统步骤详解的完整攻略,包括了创建Laravel应用程序、创建用户表、创建用户认证功能、设置默认控制器和测试登录等步骤。同时,该攻略还提供了两个示例说明,分别介绍如何添加邮箱验证和自定义认证登录后的Settings页。若仍有疑问可以在讨论区继续交流。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Laravel搭建后台登录系统步骤详解 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • Web程序工作原理详解

    Web程序工作原理详解 Web程序是建立在客户端和服务器之间的基于网络的应用程序。Web程序通常由Web服务器、应用服务器和数据存储组成。Web服务器是指用于托管Web应用程序的软件,例如常用的Apache和Nginx。而应用服务器是指Web应用程序能够运行的平台,例如Java的Tomcat和Node.js的Express等。 工作流程 Web程序的工作流程…

    PHP 2023年5月23日
    00
  • php unlink()函数使用教程

    下面是详细讲解 PHP unlink() 函数使用教程的完整攻略。 1. 什么是PHP unlink()函数 PHP unlink() 函数用于删除文件,它的基本语法如下: bool unlink ( string $filename [, resource $context ] ) 其中,$filename 参数表示要删除的文件路径及文件名,$contex…

    PHP 2023年5月27日
    00
  • MySQL连接数超过限制的解决方法

    MySQL是一款常用的关系型数据库,在使用的过程中可能会遇到连接数超过限制的问题,那么该如何解决呢? 以下是解决MySQL连接数超过限制问题的完整攻略: 1. 查看当前连接数 在出现连接数超过限制的问题时,首先要了解当前的连接情况。可以使用如下命令查看当前连接数: show status like ‘Threads_connected’; 2. 修改MySQ…

    PHP 2023年5月27日
    00
  • 方便实用的PHP生成静态页面类(非smarty)第1/2页

    生成静态页面是网站优化的一个重要环节,可以大幅度提高网站的访问速度,减轻服务器负担。而PHP作为一门较为流行的服务器端语言,本身具有良好的HTML输出能力,本文介绍的是如何利用PHP生成静态页面的方法。 什么是生成静态页面 生成静态页面是指将动态页面的数据输出为一份静态HTML文件,当用户请求访问页面时,直接输出静态HTML文件,而不是再次生成动态页面。这样…

    PHP 2023年5月30日
    00
  • PHP读取XML格式文件的方法总结

    PHP读取XML格式文件的方法总结 一、XML文件简介 XML(可扩展标记语言)是一种标记语言,它可以被用来存储和传输数据。与HTML相比,XML的标签没有事先定义好的,需要自己定义,用户需要自行定义标记以及标记的属性来表达数据。XML的主要作用是把数据描述为一种独立于软件和硬件的格式,该数据可以用于各种应用程序之间的交换或共享。 二、PHP读取XML文件的…

    PHP 2023年5月26日
    00
  • PHP实现数组递归转义的方法

    当我们向数据库中插入包含数组的数据时,有时这些数组的值中会出现引号、反斜杠等特殊字符,从而导致插入失败。解决这个问题的方法就是将数组中的特殊字符进行转义。以下是PHP实现数组递归转义的方法的完整攻略。 步骤1. 使用递归函数对数组进行转义 首先,我们需要定义一个递归函数,该函数可以将数组中所有的字符串都进行转义。以下是示例代码: function escap…

    PHP 2023年5月26日
    00
  • 微信小程序组件 marquee实例详解

    微信小程序组件 marquee实例详解 什么是marquee组件? marquee组件是微信小程序自带的一种用于文字、图片等滚动展示的UI组件,可以实现字幕、公告等效果,非常适合一些需要重点宣传或广告展示的场合。 marquee组件的基本用法 marquee组件的基本用法非常简单,以下是一个简单的使用示例: <marquee direction=&qu…

    PHP 2023年5月23日
    00
  • php实现映射操作实例详解

    PHP实现映射操作实例详解 映射(Map)是一种在PHP中常见的数据类型,其实就是一种键值对的集合。我们可以使用PHP的关联数组来直接实现映射操作。 创建映射 我们可以使用以下语法创建一个空的映射: $map = array(); 也可以在创建映射的同时指定键值对: $map = array("key1" => "valu…

    PHP 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部