📜  如何在 laravel 中验证电子邮件或电话号码单参数请求 - PHP (1)

📅  最后修改于: 2023-12-03 15:08:41.574000             🧑  作者: Mango

如何在 Laravel 中验证电子邮件或电话号码单参数请求

在 Laravel 中,我们可以使用 Validator 类来验证用户输入的数据。本文将介绍如何在 Laravel 中验证电子邮件或电话号码单参数请求。

1. 验证电子邮件

下面是一个示例,演示如何在 Laravel 中验证用户输入的电子邮件地址是否有效。

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

function validateEmail(Request $request)
{
    $validator = Validator::make($request->all(), [
        'email' => 'required|email',
    ]);
    
    if ($validator->fails()) {
        return response()->json(['error' => 'Invalid email address.'], 400);
    }
    
    return response()->json(['message' => 'Email address is valid.'], 200);
}

在以上示例中,我们首先使用 $request->all() 获取请求中的所有参数,然后使用 Validator 类创建一个验证器实例。在 $validator = Validator::make($request->all(), [...]) 中,我们为 email 参数指定了两个验证规则:requiredemail。如果验证失败,则返回 HTTP 状态码 400 和错误消息“Invalid email address.”;如果验证成功,则返回 HTTP 状态码 200 和消息“Email address is valid.”。

2. 验证电话号码

下面是一个示例,演示如何在 Laravel 中验证用户输入的电话号码是否有效。

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;

function validatePhoneNumber(Request $request)
{
    $validator = Validator::make($request->all(), [
        'phone_number' => ['required', function ($attribute, $value, $fail) {
            if (!preg_match('/^1[3456789]\d{9}$/', $value)) {
                $fail('Invalid phone number.');
            }
        }],
    ]);
    
    if ($validator->fails()) {
        return response()->json(['error' => 'Invalid phone number.'], 400);
    }
    
    return response()->json(['message' => 'Phone number is valid.'], 200);
}

在以上示例中,我们同样使用了 Validator 类创建一个验证器实例。在 $validator = Validator::make($request->all(), [...]) 中,我们为 phone_number 参数指定了两个验证规则:required 和一个回调函数,该回调函数接受三个参数:$attribute$value$fail,其中 $attribute 是验证属性的名称,$value 是验证属性的值,$fail 是一个失败回调函数,用于在发现无效数据时向用户发出错误消息。在回调函数中,我们使用正则表达式检查电话号码是否符合中国大陆手机号码格式。如果验证失败,则返回 HTTP 状态码 400 和错误消息“Invalid phone number.”;如果验证成功,则返回 HTTP 状态码 200 和消息“Phone number is valid.”。

结论

以上是在 Laravel 中验证电子邮件或电话号码单参数请求的示例代码。借助 Validator 类或自定义规则,我们可以轻松验证用户输入的任何数据。