A Comprehensive Guide to Form Validation in Laravel

Photo by Artem Smus on Unsplash

A Comprehensive Guide to Form Validation in Laravel

Laravel Oct 9, 2022

Form validation is a crucial aspect of web development, and it helps ensure that the data submitted by users is accurate and in the expected format. Laravel, a popular PHP web application framework, provides a simple and elegant way to perform form validation. In this article, we will discuss everything you need to know about form validation in Laravel, including how to create custom validation rules and how to display error messages.

First, let's take a look at the basic validation process in Laravel. The framework includes a built-in validation class that can be used to validate incoming data. To use the validation class, you can pass an array of data and a set of validation rules to the validate method, like this:

$validatedData = $request->validate([
    'title' => 'required|unique:posts|max:255',
    'body' => 'required',
]);

In this example, the validate method is called on the request object, and it expects to receive an array of data. The array keys represent the fields that need to be validated, and the array values represent the validation rules that should be applied to those fields. In this case, the title field is required, must be unique in the posts table, and must have a maximum length of 255 characters. The body field is also required.

The validate method returns an array of validated data, which can then be used to create or update a database record. If any validation errors occur, Laravel will automatically redirect the user back to the previous page and flash the errors to the session. You can display these errors in your view using the $errors variable, like this:

<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <li>{{ $error }}</li>
        @endforeach
    </ul>
</div>

In addition to the built-in validation rules, you can also create your own custom validation rules. To create a custom validation rule, you can use the Rule facade, like this:

use Illuminate\Validation\Rule;

$validatedData = $request->validate([
    'email' => [
        'required',
        Rule::exists('subscribers')->where(function ($query) {
            $query->where('confirmed', true);
        }),
    ],
]);

In this example, a custom validation rule is created using the Rule::exists method. The rule checks if the email exists in the subscribers table and is confirmed.

In addition, you can use after and before methods to check date fields, and nullable or sometimes to check if a field is not required on certain situations.

In conclusion, form validation is an important aspect of web development, and Laravel makes it easy to perform validation and display error messages. With the built-in validation class and the ability to create custom validation rules, you can ensure that your application only receives accurate and well-formatted data.

Tags

Anurag Deep

Logical by Mind, Creative by Heart