laravel Validator 数据验证
文档
https://learnku.com/docs/laravel/9.x/validation/12219
写法
use Illuminate\Support\Facades\Validator;
·
·
$validated = Validator::make(
$request->all(),
[
'username' => 'bail|required|max:100|alpha_dash|unique:users',
'password' => 'bail|required|max:100|confirmed|alpha_dash',
'email' => 'bail|required|email|unique:users',
],
[
'required' => ':attribute 必填项',
'max' => ':attribute 最大值为 :max',
'confirmed' => '两个密码不一致',
'alpha_dash' => ':attribute 只能包含字母、数字,以及破折号 (-) 和下划线 ( _ )'
],
[
'username' => '用户名',
'password' => '密码',
'email' => '邮箱',
]
);
// 数据验证失败
if ($validated->fails()) {
return $this->callBack($validated->errors());
}
·
·
解
$validator = Validator::make($input, $rules, $messages, $attribute);
$input
输入内容 一般填 $request->all()
$rules
验证规则 具体规则
$messages
错误消息 一般写规则的反馈内容 如果要特定参数指定反馈加个. 如
'username.max' => '用户名最大长度为 :max',
$attribute
属性自定义名称 给各个属性返回的名称自定义 或者写语言文件lang/xx/validation.php
的attributes
'attributes' => [
'email' => 'email address',
],
表单请求验证
定义
生成表单请求类php artisan make:request 名称Request
/**
* 表示验证器是否应在第一个规则失败时停止。
*
* @var bool
*/
protected $stopOnFirstFailure = true;
/**
* 确定用户是否有权提出此请求。
*
* @return bool
*/
public function authorize(): bool
{
return true;
}
/**
* 获取适用于请求的验证规则。
*
* @return array
*/
public function rules(): array
{
return [
'表单字段名称' => 'bail|required',
];
}
/**
* 获取已定义验证规则的错误消息。
*
* @return array
*/
public function messages(): array
{
return [
'required' => ':attribute 必填',
];
}
/**
* 获取验证错误的自定义属性
*
* @return array
*/
public function attributes(): array
{
return [
'字段名称' => '返回名称',
];
}
使用
use App\Http\Requests\Admin\SetReleasesRequest;
*
*
public function setReleases(SetReleasesRequest $request)
{
$validated = $request->validated();
$validated['字段名称'];
}