laravel表单验证规则required、present 、filled 和 nullable区别
在解释这四个验证规则前,我们需要明晰三个概念 —— 空值(empty)、输入数据(input data)和验证字段(filed under validation)。
空值
在 Laravel 中,一个字段值满足下面任一条件都被视为空值。
null。
空字符串('')。
空数组([])或空 Countable 对象。
无路径的上传文件。
输入数据 & 验证字段
以注册功能为例。
```
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
public function register(Request $request)
{
$this->validator($request->all())->validate();
...
}
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
$request->all() 就是「输入数据」,Validator::make 里的 name、email 和 password 就是「验证字段」。
```
>验证规则
```
required
验证字段必须出现在输入数据中、不能为空。
present
验证字段必须出现在输入数据中、能为空。
filled
验证字段可不在输入数据中。
当验证字段出现在输入数据中时,不能为空。
nullable
验证字段的值可以是 null。
```