个人资料管理

未匹配的标注

个人资料管理

介绍

Laravel Jetstream 的个人资料管理功能是由用户使用右上角的用户个人资料导航下拉菜单来访问。Jetstream 提供了视图和 action,允许用户更新他们的姓名、电子邮件地址和(可选的)个人资料照片。

Screenshot of Profile Management

Actions

与 Jetstream 的大多数功能一样,进行个人资料更新请求而执行的后端逻辑可以在你的应用程序中的 action 类中找到。记住,当用户更新其个人资料时,将调用 App\Actions\Fortify\UpdateUserProfileInformation 类。这个 action 负责验证传入的请求输入并更新用户的个人资料。

因此,想对你的应用程序的这方面资料的管理进行任何自定义,都应该在这个类中进行。当调用时,这个 action 接收当前已验证的$user和一个包含来自传入的所有请求输入的 $input 数组,包括更新的个人资料照片(如果有的话)。

提示:管理其他资料
如果你需要管理关于用户的其他资料,你并不局限于只修改所提供的 “个人资料 “卡片。你可以根据需要在用户的个人资料仪表板上添加其他的 UI 元素和表单。

视图 / 页面

当使用Livewire 技术栈时,用户的个人资料信息表单是使用 resources/views/profile/update-profile-information.blade.php Blade模板来显示的。当使用 Inertia 技术栈时,这个视图是使用 resources/js/Pages/Profile/UpdateProfileInformationForm.vue 模板来显示。

这些模板中的每一个都会接收整个已验证的用户对象,这样你就可以根据需要在这些表单中添加其他的字段。添加到表单中的任何其他输入将包含在传递给你的 UpdateUserProfileInformation action的 $input 数组中。

个人资料照片

启用个人资料照片

如果你想允许用户上传自定义的个人资料照片,你必须在你的应用程序的 config/jetstream.php 配置文件中启用这个功能。要启用这个功能,只需取消注释这个文件中的 features 配置项中的相应功能条目:

use Laravel\Jetstream\Features;

'features' => [
    Features::profilePhotos(),
    Features::api(),
    Features::teams(),
],

在启用个人资料照片功能后,你应该执行 storage:link Artisan命令。这个命令将在你的应用程序的 public 目录下创建一个软链接,使你的用户的图片能够被你的应用程序提供。关于这个命令的信息, 请参阅 Laravel filesystem documentation:

php artisan storage:link

管理个人资料照片

Jetstream的个人资料照片功能是由 Laravel\Jetstream\HasProfilePhoto trait 支持的,在 Jetstream 的安装过程中会自动追加到你的 App\Models\User 类。

这个 trait 包含的方法有:updateProfilePhotogetProfilePhotoUrlAttributedefaultProfilePhotoUrlprofilePhotoDisk,如果你需要自定义它们的行为,这些方法都可以被你自己的 App\Models\User 类覆盖。我们建议你阅读这个 trait 的源代码,这样你就能充分了解它为你应用程序提供的功能。

updateProfilePhoto 方法是用来存储个人资料照片的主要方法,由你的应用程序的 App\Actions\Fortify\UpdateUserProfileInformation action 类调用。

提示:Laravel Vapor
当你的 Jetstream 应用程序在 Laravel Vapor 中运行时,默认下将使用 s3 磁盘存储个人资料照片。

账户删除

个人资料管理界面还包括一个操作面板,允许用户删除他们的应用账户。当用户选择删除他们的账户时,App\Actions\Jetstream\DeleteUser action类会被调用。你可以在这个类中随意地自定义应用程序的账户删除逻辑。

帐户删除功能可以通过从你应用程序的 config/jetstream.php 配置文件中删除该功能来禁用:

use Laravel\Jetstream\Features;

'features' => [
    Features::termsAndPrivacyPolicy(),
    Features::profilePhotos(),
    Features::api(),
    Features::teams(),
    // Features::accountDeletion(),
],

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 0
发起讨论 查看所有版本


暂无话题~