如何在 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

