Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
How to validate an array in Laravel?
In Laravel, you can validate array data using the builtin Validator class. This is essential for ensuring data integrity before processing user input or form submissions.
To use Laravel's validation features, ensure you have Laravel installed and include the Validator facade in your controller.
use Illuminate\Support\Facades\Validator;
Validating Associative Arrays
When working with associative arrays, you define validation rules for each key. Here's how to validate an array with firstname, lastname, and address fields ?
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
class TestUserController extends Controller {
public function index() {
$formData = array(
'firstname' => 'Siya',
'lastname' => 'Nadkarni',
'address' => 'xyz'
);
$rules = array(
'firstname' => 'required|string',
'lastname' => 'required|string',
'address' => 'required|string'
);
$validator = Validator::make($formData, $rules);
if ($validator->fails()) {
echo "Invalid Array";
} else {
echo "Array Validation is Successful";
}
}
}
?>
Array Validation is Successful
Missing Required Fields
If a required field is missing from the array, validation will fail ?
<?php
$formData = array(
'firstname' => 'Siya',
'lastname' => 'Nadkarni'
// address field is missing
);
$rules = array(
'firstname' => 'required|string',
'lastname' => 'required|string',
'address' => 'required|string' // This will fail
);
$validator = Validator::make($formData, $rules);
if ($validator->fails()) {
echo "Invalid Array";
} else {
echo "Array Validation is Successful";
}
?>
Invalid Array
Optional Fields
Fields without validation rules are ignored and won't cause validation failure ?
<?php
$formData = array(
'firstname' => 'Siya',
'lastname' => 'Nadkarni',
'address' => 'xyz' // No rule defined for this field
);
$rules = array(
'firstname' => 'required|string',
'lastname' => 'required|string'
// address rule is commented out
);
$validator = Validator::make($formData, $rules);
if ($validator->fails()) {
echo "Invalid Array";
} else {
echo "Array Validation is Successful";
}
?>
Array Validation is Successful
Validating Numeric Arrays
For indexed arrays with numeric values, use the asterisk (*) wildcard to validate all elements ?
<?php
$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 Successful";
}
?>
Array Validation is Successful
Common Validation Rules
| Rule | Description | Example |
|---|---|---|
required |
Field must be present | 'name' => 'required' |
array |
Must be an array | 'items' => 'array' |
string |
Must be a string | 'name' => 'string' |
integer |
Must be an integer | 'age' => 'integer' |
* |
Validates all array elements | 'items.*' => 'required' |
Conclusion
Laravel's Validator class provides flexible array validation using rules for associative arrays and wildcards for indexed arrays. Use compact() for numeric arrays and define specific rules for each field in associative arrays.
