如何在 Laravel 中驗證陣列?
在 Laravel 中驗證輸入資料的方法有很多種。其中一種是使用 Validator 類。第一步是包含此類,如下所示:
use Illuminate\Support\Facades\Validator;
當您使用陣列時,需要在陣列中指定鍵和要使用的規則。例如,考慮以下陣列。在這裡,我們添加了鍵 firstname、lastname 和 address 以及它們的值。使用規則,我們定義所有這些元素都是必填的,並且資料型別為字串。
$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
現在,讓我們檢查另一個示例,我們將刪除 address 欄位並進行測試:
<?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"; } } }
在上述情況下,陣列中沒有 address 欄位,但規則規定需要 address 欄位,因此當您使用驗證器對其進行測試時,它將失敗,並且此程式會列印一條訊息,提示“無效陣列”,如下所示。
輸出
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"; } } }
輸出
此處刪除了 address 的規則,測試後,上述程式碼的輸出如下:
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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP