【PHP】在laravel中使用breeze进行认证

什么是Laravel Breeze

Laravel Breeze是一个Laravel的用户安全验证脚手架包。使用它,你可以在几分钟内拥有一个完整的登录和注册系统。它支持Blade, Vue, 和React,也有一个API版本。

Laravel Breeze的主要功能是:

  • 登录
  • 注册
  • 密码重置
  • 电子邮件验证
  • 个人资料页, 有编辑功能

在一个新的Laravel项目中安装Laravel Breeze

我们需要用以下命令来安装Laravel Breeze:

composer require laravel/breeze --dev

Blade是Laravel的默认模板引擎,我们接下来启用Blade用于讲述本案例:

php artisan breeze:install blade
php artisan migrate
npm install
npm run dev

在安装Laravel Breeze之后,你会注意到在你的项目目录中已经生成了几个文件。这些文件包括路由,控制器,以及处理认证,密码重置,和电子邮件验证的视图。你可以探索这些文件并定制它们以适应你的应用程序的要求。

如何定制用户界面

Laravel Breeze使用TailwindCSS,我们可以使用任何Tailwind工具类来定制用户界面。

你可以通过编辑 resources/views/auth ;文件夹中的视图文件来定制UI的每个部分, UI的某些部分被组织成Blade组件, 你可以在 resources/views/components 文件夹中找到这些组件。

如何定制注册流程

Laravel Breeze的注册页面有4个预定义的字段:

  1. 姓名
  2. 电子邮件
  3. 密码
  4. 密码确认

为了扩展我们希望注册表单具有的字段,我们需要打开 resources/views/auth/register.blade.php 文件。

为了继续我们的例子,我们将在电子邮件字段之后制作一个电话字段。要做到这一点,请在电子邮件字段后添加以下代码:

<div class="mt-4">
<x-input-label for="phone" :value="__('Phone')" />
<x-text-input id="phone" class="block mt-1 w-full" type="text" name="phone" :value="old('phone')" required autocomplete="phone" />
<x-input-error :messages="$errors->get('phone')" class="mt-2" />
</div>

电话字段现在在注册表中是可见的。

修改后端以存储新的电话字段

我们现在需要在后端处理新的数据。这需要三个步骤:首先,创建并运行一个新的迁移,然后在控制器中添加逻辑来存储数据,最后,在 User 模型的可填充属性中添加 phone 。

创建一个新的迁移,为我们的 users 表添加一个电话字段。

php artisan make:migration add_phone_field_to_users_table

打开创建的文件,添加一个名为 “phone” 的字符串字段:

Schema::table('users', function (Blueprint $table) {
    $table->string('phone')->nullable();
});

之后,运行迁移:

php artisan migrate

为了存储电话字段,我们需要修改 RegisteredUserController.php ,在 store 方法中做这些修改:

$request->validate([
'name' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:'.User::class],
‘phone’ => [‘required’, ‘string’, ‘max:255],
'password' => ['required', 'confirmed', Rules\Password::defaults()],
]);
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'phone' => $request->phone,
'password' => Hash::make($request->password),
]);

不要忘记将 phone 字段添加到用户模型的可填充属性中。

protected$fillable = ['name','email','phone','password',];
就这样,现在我们有了修改后的登记表。

小结

Laravel Breeze是一个伟大的工具, 可以为你的Laravel项目快速建立一个认证系统.

凭借其简单而可定制的脚手架, 你可以专注于构建你的应用程序而不必担心认证过程.