## **简介**
表单验证是我们每天都需要使用的功能之一。
**1.编写验证逻辑**
我们假设有一个用户在添加一篇文章,
```
public function store(Request $request){
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255'
]);
// 验证通过,存储到数据库...
}
或使用
public function store(Request $request){
$this->validate($request, [
'title' => 'required|unique:posts|max:255'
]);
// 验证通过,存储到数据库...
}
```
我们验证了文章标题不能为空、不能重复、最大长度不能超过255个字符
如果发生错误在模板中可输出
```
@if ($errors->any())
@foreach ($errors->all() as $error)
<div>{{ $error }}</div>
@endforeach
@endif
```
**2.AJAX 请求 & 验证**
我们在实际应用中会经常使用到ajax进行表单提交,下面我们看开一下ajax的验证
使用命令行创建验证器
```
php artisan make:request UserRequest
```
于是就生成了app/Http/Requests/UserRequest.php
但是我们使用了laravel-modules模块化开发,可以使用命令
我们可以看出我们只是将make:request改为了module:make-request并在最后加上了模块名(laravel和laravel-modules的规律)
```
php artisan module:make-request AdminRequest Admin
```
![](https://box.kancloud.cn/bd0614f2fd473c5207ca525226c195de_1252x592.png)
在这里我其实更喜欢AdminRequest 改为Admin,因为我们在tp5中这样使用,但是我并不建议,还是那句话,我们在学习新的框架是不能受老习惯的影响。