如何在 Laravel 中验证数组?

laravelphpserver side programming更新于 2025/7/4 6:52:17

在 Laravel 中,验证输入数据的方法有很多种。其中一种是使用 Validator 类。第一步是需要添加该类,如下所示 -

使用 Illuminate\Support\Facades\Validator;

使用数组时,需要指定数组中要使用的键和规则。例如,考虑以下数组。在这里,我们添加了键 firstname、lastname 和 address 以及值。使用规则,我们定义所有这些元素都是必需的,并且数据类型为 String。

$formData = array(
   'firstname' => 'Siya',
   'lastname' => 'Nadkarni',
   'address' => 'xyz'
);
$rules['firstname'] = 'required|string';
$rules['lastname'] = 'required|string';
$rules['address'] = 'required|string';

示例 1

现在让我们使用验证器测试数组,如下所示 -

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class testuserip extends Controller { public function index() { $formData = array( 'firstname' => 'Siya', 'lastname' => 'Nadkarni', 'address' => 'xyz', ); $rules['firstname'] = 'required|string'; $rules['lastname'] = 'required|string'; $rules['address'] = 'required|string'; $validator = Validator::make($formData , $rules); if ($validator->fails()) { echo "Invalid Array"; } else { echo "Array Validation is Successful"; } } }

输出

执行后,上述代码将生成以下输出。

Array Validation is Successful

示例 2

现在,让我们检查另一个示例,其中我们将删除地址字段并进行测试 -

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class testuserip extends Controller { public function index() { $formData = array( 'firstname' => 'Siya', 'lastname' => 'Nadkarni' ); $rules['firstname'] = 'required|string'; $rules['lastname'] = 'required|string'; $rules['address'] = 'required|string'; $validator = Validator::make($formData , $rules); if ($validator->fails()) { echo "Invalid Array"; } else { echo "Array Validation is Successfull"; } } }

在上述情况下,数组没有地址字段,但规则规定地址字段是必需的,因此当您使用验证器测试它时,它将失败,并且该程序将打印一条消息,提示"无效数组",如下所示。

输出

Invalid Array

示例 3

如果提到了密钥但没有定义规则,则验证器将忽略该密钥并使其通过。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class testuserip extends Controller { public function index() { $formData = array( 'firstname' => 'Siya', 'lastname' => 'Nadkarni', 'address' => 'xyz', ); $rules['firstname'] = 'required|string'; $rules['lastname'] = 'required|string'; // $rules['address'] = 'required|string'; $validator = Validator::make($formData , $rules); if ($validator->fails()) { echo "Invalid Array"; } else { echo "Array Validation is Successfull"; } } }

输出

这里删除了地址规则,经过测试,上述代码的输出如下 -

Array Validation is Successful

示例 4

以下演示如何验证数字数组。其规则如下 -

$formData = array(10,20,30,40); $validator = \Validator::make(compact('formData'), [ 'formData' => 'required|array', 'formData.*' => 'integer' ]);

应用的规则是数组元素必须是整数值。

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class testuserip extends Controller { public function index() { $formData = array(10,20,30,40); $validator = \Validator::make(compact('formData'), [ 'formData' => 'required|array', 'formData.*' => 'integer' ]); if ($validator->fails()) { echo "Invalid Array"; } else { echo "Array Validation is Successfull"; } } }

输出

执行时,上述程序生成以下输出 -

Array Validation is Successful

相关文章