You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel表单验证:合并姓氏与名字验证最大字符数

Laravel实现姓名组合长度验证方案

要实现first_name与last_name合并后的最大字符数验证,你可以利用Laravel验证器的after回调功能,在默认规则验证完成后添加自定义逻辑,具体实现如下:

修改后的完整验证代码

$validator = Validator::make($request->all(), [
    'first_name' => ['required'],
    'last_name' => ['required'],
    'phone' => ['required', 'string', 'max:255'],
    'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
    'password' => ['required', 'string', 'min:8'],
]);

// 添加姓名组合长度验证逻辑
$validator->after(function ($validator) use ($request) {
    // 若需按字符数(支持中文等多字节字符)计算,使用mb_strlen;按字节数则用strlen
    $totalLength = mb_strlen($request->first_name) + mb_strlen($request->last_name);
    
    // 替换50为你实际需要的最大字符数
    if ($totalLength > 50) {
        $validator->errors()->add('full_name', '姓名组合后的总长度不能超过50个字符');
    }
});

if ($validator->fails()) {
    return response()->json(['message' => 'Errors!','errors'=>$validator->errors()], 500);
}else{
    return response()->json(['message' => 'User registered successfully'], 201);
}

关键说明

  1. 验证时机:after回调会在所有默认规则(比如required)验证通过后执行,确保first_name和last_name都存在,避免空值计算错误。
  2. 长度计算选择:
    • strlen:按字节数计算,适合纯英文场景;
    • mb_strlen:按字符数计算,支持中文、日文等多字节字符,需确保PHP开启了mbstring扩展。
  3. 错误信息字段:示例中错误信息绑定到full_name字段,你也可以根据需求将错误添加到first_name或last_name字段,比如$validator->errors()->add('first_name', '姓名组合长度超限')。

内容的提问来源于stack exchange,提问作者dev radwa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 14:37:33