📅  最后修改于: 2023-12-03 15:02:39.086000             🧑  作者: Mango
在 Laravel 中,验证数组是一个非常常见的任务。在本文中,我们将介绍如何使用 Laravel 内置的验证器来验证数组,以及如何自定义有效规则。
在验证数组之前,您需要确保传递给验证器的输入是一个数组。您可以使用 Laravel 提供的 isArray
规则轻松检查输入是否为数组。下面是一个示例:
$validator = Validator::make($request->all(), [
'items' => 'required|array'
]);
if ($validator->fails()) {
// 处理错误
}
在上面的示例中,我们使用 required
和 array
规则来确保 items
是否为必需且为数组类型。如果验证失败,则 $validator->fails()
会返回 true
。
在验证数组本身之后,您可能还需要验证数组中的每个元素。您可以使用 Laravel 提供的 each
规则轻松完成此操作。下面是一个示例:
$validator = Validator::make($request->all(), [
'items' => 'required|array',
'items.*.name' => 'required|string|min:3',
'items.*.price' => 'required|numeric|min:0'
]);
if ($validator->fails()) {
// 处理错误
}
在上面的示例中,我们使用 items.*.name
和 items.*.price
规则分别对数组中的每个元素 name
和 price
进行验证。如果验证失败,则 $validator->fails()
会返回 true
。
如果 Laravel 内置的验证规则不满足您的需求,您可以轻松自定义您自己的验证规则。您可以将自定义规则添加到 App\Providers\AppServiceProvider
类的 boot
方法中。下面是一个示例:
use Illuminate\Support\Facades\Validator;
Validator::extend('odd', function ($attribute, $value, $parameters, $validator) {
return $value % 2 != 0;
});
在上面的示例中,我们定义了一个名为 odd
的自定义规则。该规则接受四个参数:
$attribute
:被验证的属性$value
:被验证的值$parameters
:传递给规则的其他参数$validator
:当前的验证器实例在规则的回调函数中,我们检查传递的值是否为奇数。如果是奇数,则返回 true
,否则返回 false
。
使用自定义规则非常简单,只需将自定义规则的名称添加到验证器规则中即可。下面是一个示例:
$validator = Validator::make($request->all(), [
'number' => 'required|integer|odd'
]);
if ($validator->fails()) {
// 处理错误
}
在上面的示例中,我们使用自定义规则 odd
来验证通过 number
属性传递的奇数值。
在 Laravel 中验证数组非常容易。您只需要确保输入是数组并使用 each
规则对数组的每个元素进行验证即可。如果 Laravel 内置的验证规则不满足您的需求,您可以轻松地添加自定义规则。