📅  最后修改于: 2023-12-03 15:08:41.574000             🧑  作者: Mango
在 Laravel 中,我们可以使用 Validator 类来验证用户输入的数据。本文将介绍如何在 Laravel 中验证电子邮件或电话号码单参数请求。
下面是一个示例,演示如何在 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
参数指定了两个验证规则:required
和 email
。如果验证失败,则返回 HTTP 状态码 400 和错误消息“Invalid email address.”;如果验证成功,则返回 HTTP 状态码 200 和消息“Email address is valid.”。
下面是一个示例,演示如何在 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
类或自定义规则,我们可以轻松验证用户输入的任何数据。