功能:注册保存性别 + 聊天室个人设置弹窗

- 登录表单的性别选择(bSex)在注册时保存到数据库(男/女/保密)
- 新增 question/answer 密保字段迁移(hasColumn 安全检查)
- User 模型 fillable 增加 sign/question/answer
- UpdateProfileRequest 增加 email/question/answer 验证
- 聊天室工具栏新增设置按钮
- 设置弹窗包含:修改密码、性别、邮箱、密保问题
This commit is contained in:
2026-02-26 22:50:35 +08:00
parent 86732deaca
commit c38a53fa74
7 changed files with 225 additions and 1 deletions

View File

@@ -0,0 +1,49 @@
<?php
/**
* 文件功能:为用户表添加密码保护问题和答案字段
*
* 用于用户找回密码的密保问题功能。
* 使用 hasColumn 检查避免重复添加。
*/
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* 添加密保问题和答案字段(已存在则跳过)
*/
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
if (! Schema::hasColumn('users', 'question')) {
$table->string('question', 100)->nullable()->after('email')->comment('密保问题');
}
if (! Schema::hasColumn('users', 'answer')) {
$table->string('answer', 100)->nullable()->after('question')->comment('密保答案');
}
});
}
/**
* 回滚:删除密保字段
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$columns = [];
if (Schema::hasColumn('users', 'question')) {
$columns[] = 'question';
}
if (Schema::hasColumn('users', 'answer')) {
$columns[] = 'answer';
}
if ($columns) {
$table->dropColumn($columns);
}
});
}
};