【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个预定义的字段:
- 姓名
- 电子邮件
- 密码
- 密码确认
为了扩展我们希望注册表单具有的字段,我们需要打开 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
字段添加到用户模型的可填充属性中。
小结
Laravel Breeze是一个伟大的工具, 可以为你的Laravel项目快速建立一个认证系统.
凭借其简单而可定制的脚手架, 你可以专注于构建你的应用程序而不必担心认证过程.