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日

相关文章

  • 在Win7 中为php扩展配置Xcache

    以下是在Win7中为PHP扩展配置Xcache的完整攻略,包含两个示例。 步骤一:下载并安装Xcache 在官方网站下载适用于Windows的Xcache扩展。 解压缩下载的压缩包到PHP扩展目录下的ext文件夹中,例如:C:\xampp\php\ext。 步骤二:为Xcache配置php.ini 在PHP目录下找到php.ini文件,例如:C:\xampp…

    PHP 2023年5月27日
    00
  • PHP实现创建以太坊钱包转账等功能

    PHP实现创建以太坊钱包转账等功能的完整攻略 1. 安装以太坊钱包php库 使用composer安装ethereum-php库。 composer require digitaldonkey/ethereum-php 2. 配置环境 配置php.ini文件 在php.ini文件中,将extension=php_gmp.dll前面的分号去掉,使其生效。 配置以…

    PHP 2023年5月27日
    00
  • php中ob(Output Buffer 输出缓冲)函数使用方法

    当我们在PHP代码中输出内容时,这些内容会立即发送到服务器和客户端。然而使用PHP的输出缓冲功能可以将这些内容暂时保存起来,而不是马上发送。这样就可以在输出前对内容进行一些处理,比如可以修改、删除或添加内容。 PHP中使用输出缓冲时,可以使用ob系列函数来实现。其中常用的两个函数是ob_start()和ob_end_flush()。 ob_start() o…

    PHP 2023年5月26日
    00
  • Mac环境下php操作mysql数据库的方法分享

    下面是Mac环境下php操作mysql数据库的方法分享的完整攻略: 1. 环境搭建 首先需要安装LAMP或MAMP环境,其中MAMP是Mac OS X下比较方便的解决方案,在安装MAMP后,我们需要在终端上进入到MAMP安装目录下的bin文件夹中,找到php的可执行文件,并将其加入到环境变量中,这样我们就可以在终端上直接使用php命令。 2. 安装mysql…

    PHP 2023年5月27日
    00
  • php字符串比较函数用法小结(strcmp,strcasecmp,strnatcmp及strnatcasecmp)

    下面详细讲解一下PHP字符串比较函数的用法。 一、strcmp函数 1.1 函数介绍 strcmp函数用于比较两个字符串的大小。它会返回一个整数表示两个字符串的大小关系,比较规则是按照ASCII码的值进行逐个字节的比较。具体规则如下: 如果str1小于str2,那么返回一个小于0的整数 如果str1等于str2,那么返回0 如果str1大于str2,那么返回…

    PHP 2023年5月26日
    00
  • thinkphp实现like模糊查询实例

    下面是“thinkphp实现like模糊查询实例”的完整攻略。 1. 创建模型 在ThinkPHP中,我们需要使用模型来完成对表的操作。在本实例中,我们需要创建一个专门用来处理like模糊查询的模型。 <?php namespace app\index\model; use think\Model; class Article extends Mode…

    PHP 2023年5月26日
    00
  • 微信小程序网络封装(简单高效)

    微信小程序网络封装(简单高效) 什么是网络封装 网络封装是指在原有的网络请求框架基础上,通过封装来简化网络请求的操作。在实际开发中,封装网络请求可以减少代码的重复率,提高项目的可维护性、可读性、可扩展性等方面的优势。另外,依据业务需求,也可以实现网络请求的统一管理、统一处理等操作。 微信小程序网络请求模块 在微信小程序中,提供了基于Promise的网络请求A…

    PHP 2023年5月30日
    00
  • PHP实现的创建带logo图标二维码生成类详解

    PHP实现的创建带logo图标二维码生成类详解 简介 二维码(QR Code)是应用于电子设备中的一种条码。它以矩阵和黑白两色的方式来记录数据信息,具有信息容量大、安全性高、易于读取等特点,是目前应用非常广泛的一种图形码。本文介绍了在PHP中创建带logo图标的二维码生成类的实现方法,可以用于实现在网站中生成二维码并带有自定义logo。 实现步骤 1. 导入…

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