search
HomePHP FrameworkLaravelLaravel Development: How to validate form requests using Laravel Validation?

Laravel Development: How to validate form requests using Laravel Validation?

Jun 13, 2023 pm 01:34 PM
laravelform validationvalidation

Laravel is a popular PHP web development framework that provides many convenient features to speed up developers' work. Among them, Laravel Validation is a very practical function that can help us easily verify form requests and user-entered data. This article will introduce how to use Laravel Validation to validate form requests.

What is Laravel Validation

Laravel Validation is a form validation method built into the Laravel framework. It provides a concise, standardized, and easy-to-use way to validate form requests and user input data. You can use various rules to verify various data types, reducing code redundancy and simplifying the code development process.

How to use Laravel Validation

First, we need to use Laravel's Validation class in the controller:

use IlluminateSupportFacadesValidator;

When we need to validate a request, we can use Validator: :make() method:

public function store(Request $request)
{
    $validator = Validator::make($request->all(), [
        'name' => 'required|min:3|max:255',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|min:8|confirmed',
    ]);

    if ($validator->fails()) {
        return redirect('register')
                    ->withErrors($validator)
                    ->withInput();
    }

    // 在此处写入数据到数据库的逻辑
}

In the above code, we use the Validator::make() method to define validation rules. The first parameter passed to the make method is the request data that needs to be verified. The second parameter is an array defining validation rules. The keys in the array are the names of fields that need to be validated, and the values ​​are validation rules in the form of strings.

In the above code, we define three fields:

  • name: required, the minimum number of characters is 3, the maximum number of characters is 255
  • email: Required, email format, uniqueness verification
  • password: required, the minimum number of characters is 8, and matches the password_confirmation field

If any rule fails to verify, we will send an error message Return to the registration page and use the withInput() method to return the data previously submitted by the user.

Commonly used validation rules

When using Laravel Validation, there are many rules available. Some common rules are listed below:

  • required: This field must be filled in
  • email: This field must comply with the email address specification
  • unique:table_name, field_name: The value of this field must be unique within the specified data table
  • min:num: The minimum length of this field must be num characters
  • max:num: The maximum length of this field must be It is num characters
  • numeric: The field must be a number
  • integer: The field must be an integer
  • alpha: The field must be a word character (a-z, A-Z)
  • alpha_num: The field must be alphanumeric characters
  • confirmed: The field must match the field value named field_name_confirmation

These rules are only part of the validation rules , you can also use more rules to validate the data. You can find a more detailed list of validation rules in Laravel's documentation.

Custom validation rules

Sometimes, we need custom rules to validate data. In Laravel, we can use the Validator::extend() method to implement custom validation rules. The following is an example of a custom rule:

Validator::extend('phone_number', function ($attribute, $value, $parameters, $validator) {
    return preg_match('/^1[3-9][0-9]{9}$/', $value);
});

In this example, we define a custom rule "phone_number", which will verify whether $formData['phone_number'] meets your own defined specifications. If the verification is successful, return true, otherwise return false.

Customized error message

We can also customize the error message to make the error message more humane. The following is an example of a custom error message:

$validator = Validator::make($request->all(), [
    'email' => 'required|email|unique:users,email',
    'password' => 'required|min:8|confirmed',
]);

// 自定义错误信息
$validator->setAttributeNames([
    'email' => '邮箱',
    'password' => '密码',
]);

// 自定义错误信息模板
$validator->setCustomMessages([
    'required' => ':attribute字段不能为空',
    'email' => '请输入正确的邮箱地址',
    'unique' => ':attribute已经被占用了',
    'min' => ':attribute长度不能小于:min个字符',
    'confirmed' => '密码和确认密码不匹配',
]);

In the above code, we use the setAttributeNames() method to change the field names to make the error message more humane. We also used the setCustomMessages() method to define error message templates to make it easier and faster to change the error message and make it more user-friendly.

Summary

Through the above introduction, we learned how to use Laravel Validation to verify form requests. This can avoid errors caused by incorrect user input, handle error messages more conveniently, and save development time. Laravel Validation can better ensure the robustness and security of applications.

The above is the detailed content of Laravel Development: How to validate form requests using Laravel Validation?. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
The Illusion of Inclusion: Addressing Isolation and Loneliness in Remote WorkThe Illusion of Inclusion: Addressing Isolation and Loneliness in Remote WorkApr 25, 2025 am 12:28 AM

Tocombatisolationandlonelinessinremotework,companiesshouldimplementregular,meaningfulinteractions,provideequalgrowthopportunities,andusetechnologyeffectively.1)Fostergenuineconnectionsthroughvirtualcoffeebreaksandpersonalsharing.2)Ensureremoteworkers

Laravel for Full-Stack Development: A Comprehensive GuideLaravel for Full-Stack Development: A Comprehensive GuideApr 25, 2025 am 12:27 AM

Laravelispopularforfull-stackdevelopmentbecauseitoffersaseamlessblendofbackendpowerandfrontendflexibility.1)Itsbackendcapabilities,likeEloquentORM,simplifydatabaseinteractions.2)TheBladetemplatingengineallowsforclean,dynamicHTMLtemplates.3)LaravelMix

Video Conferencing Showdown: Choosing the Right Platform for Remote MeetingsVideo Conferencing Showdown: Choosing the Right Platform for Remote MeetingsApr 25, 2025 am 12:26 AM

Key factors in choosing a video conferencing platform include user interface, security, and functionality. 1) The user interface should be intuitive, such as Zoom. 2) Security needs to be paid attention to, and Microsoft Teams provides end-to-end encryption. 3) Functions need to match requirements, GoogleMeet is suitable for short meetings, and CiscoWebex provides advanced collaboration tools.

What database versions are compatible with the latest Laravel?What database versions are compatible with the latest Laravel?Apr 25, 2025 am 12:25 AM

The latest version of Laravel10 is compatible with MySQL 5.7 and above, PostgreSQL 9.6 and above, SQLite 3.8.8 and above, SQLServer 2017 and above. These versions are chosen because they support Laravel's ORM features, such as the JSON data type of MySQL5.7, which improves query and storage efficiency.

The Benefits of Using Laravel as a Full-Stack FrameworkThe Benefits of Using Laravel as a Full-Stack FrameworkApr 25, 2025 am 12:24 AM

Laravelisanexcellentchoiceforfull-stackdevelopmentduetoitsrobustfeaturesandeaseofuse.1)ItsimplifiescomplextaskswithitsmodernPHPsyntaxandtoolslikeBladeforfront-endandEloquentORMforback-end.2)Laravel'secosystem,includingLaravelMixandArtisan,enhancespro

What is the latest version of Laravel?What is the latest version of Laravel?Apr 24, 2025 pm 05:17 PM

Laravel10,releasedonFebruary7,2023,isthelatestversion.Itfeatures:1)Improvederrorhandlingwithanewreportmethodintheexceptionhandler,2)EnhancedsupportforPHP8.1featureslikeenums,and3)AnewLaravel\Promptspackageforinteractivecommand-lineprompts.

How does the newest Laravel version simplify development?How does the newest Laravel version simplify development?Apr 24, 2025 pm 05:01 PM

ThelatestLaravelversionenhancesdevelopmentwith:1)Simplifiedroutingusingimplicitmodelbinding,2)EnhancedEloquentcapabilitieswithnewquerymethods,and3)ImprovedsupportformodernPHPfeatureslikenamedarguments,makingcodingmoreefficientandenjoyable.

Where can I find the release notes for the latest Laravel version?Where can I find the release notes for the latest Laravel version?Apr 24, 2025 pm 04:53 PM

You can find the release notes for the latest Laravel version at laravel.com/docs. 1) Release Notes provide detailed information on new features, bug fixes and improvements. 2) They contain examples and explanations to help understand the application of new features. 3) Pay attention to the potential complexity and backward compatibility issues of new features. 4) Regular review of release notes can keep it updated and inspire innovation.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version