修复:sex 字段类型统一为整数(0=保密 1=男 2=女)
- 生产库 sex 列为 int,之前错误传入中文字符串 - AuthController 注册时直接保存整数 - UpdateProfileRequest 验证改为 in:0,1,2 - 设置弹窗 select value 改为整数
This commit is contained in:
@@ -63,9 +63,11 @@ class AuthController extends Controller
|
||||
|
||||
// --- 核心:第一次登录即为注册 ---
|
||||
|
||||
// 映射性别:1=男 2=女,默认保密
|
||||
$sexMap = ['1' => '男', '2' => '女'];
|
||||
$sex = $sexMap[$request->input('bSex', '')] ?? '保密';
|
||||
// 映射性别:1=男 2=女 0=保密(数据库 sex 列为 int)
|
||||
$sex = (int) $request->input('bSex', 0);
|
||||
if (! in_array($sex, [1, 2])) {
|
||||
$sex = 0;
|
||||
}
|
||||
|
||||
$newUser = User::create([
|
||||
'username' => $username,
|
||||
|
||||
@@ -60,7 +60,9 @@ class UserController extends Controller
|
||||
public function updateProfile(UpdateProfileRequest $request): JsonResponse
|
||||
{
|
||||
$user = Auth::user();
|
||||
$user->update($request->validated());
|
||||
$data = $request->validated();
|
||||
|
||||
$user->update($data);
|
||||
|
||||
return response()->json(['status' => 'success', 'message' => '资料更新成功。']);
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ class UpdateProfileRequest extends FormRequest
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'sex' => ['required', 'string', 'in:男,女,保密'],
|
||||
'sex' => ['required', 'in:0,1,2'],
|
||||
'headface' => ['required', 'string', 'max:50'], // 比如存放 01.gif - 50.gif
|
||||
'sign' => ['nullable', 'string', 'max:255'],
|
||||
'email' => ['nullable', 'email', 'max:255'],
|
||||
@@ -42,7 +42,7 @@ class UpdateProfileRequest extends FormRequest
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'sex.in' => '性别选项无效。',
|
||||
'sex.in' => '性别选项无效(0=保密 1=男 2=女)。',
|
||||
'headface.required' => '必须选择一个头像。',
|
||||
];
|
||||
}
|
||||
|
||||
@@ -445,9 +445,9 @@
|
||||
<label style="font-size:12px; width:50px; text-align:right;">性别:</label>
|
||||
<select id="set-sex"
|
||||
style="flex:1; padding:5px; border:1px solid #ccc; border-radius:4px; font-size:12px;">
|
||||
<option value="男" {{ Auth::user()->sex === '男' ? 'selected' : '' }}>男</option>
|
||||
<option value="女" {{ Auth::user()->sex === '女' ? 'selected' : '' }}>女</option>
|
||||
<option value="保密" {{ Auth::user()->sex === '保密' ? 'selected' : '' }}>保密</option>
|
||||
<option value="1" {{ Auth::user()->sex == 1 ? 'selected' : '' }}>男</option>
|
||||
<option value="2" {{ Auth::user()->sex == 2 ? 'selected' : '' }}>女</option>
|
||||
<option value="0" {{ Auth::user()->sex == 0 ? 'selected' : '' }}>保密</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="display:flex; align-items:center; gap:8px;">
|
||||
|
||||
Reference in New Issue
Block a user