验证规则:
accepted // 待验证字段必须是 yes , on ,1 或 true
active_url
after:YYYY-MM-DD // 待验证字段必须是给定的日期之后的值对应的日期。
// 待验证字段必须是给定的日期之前的值对应的日期。
before:YYYY-MM-DD
alpha // 待验证字段只能由字母组成。
alpha_dash // 待验证字段可能包含字母、数字,短破折号(-)和下划线(_)。
alpha_num // 待验证字段只能由字母和数字组成。
array // 待验证字段必须是有效的 PHP 数组。
between:1,10 // 验证字段的大小必须在给定的 min 和 max 之间。字符串、数字、数组和文件的计算方式都使用size方法
confirmed // 验证字段必须具有匹配字段 foo_confirmation
date // 根据 PHP strtotime 函数,验证的字段必须是有效的日期。
date_format:YYYY-MM-DD // 验证字段必须匹配给定的日期格式。
different:fieldname // 验证的字段值必须与字段 field 的值不同。
digits:value // 验证的字段必须为 numeric ,并且必须具有确切长度 _value_。
digits_between:min,max // 验证中的字段必须为数字,并且长度必须在给定的 min 和 max 之间。
boolean // 验证的字段必须可以转换为 Boolean 类型。
email // 验证的字段必须符合 e-mail 地址格式。
// 验证的字段必须存在于给定的数据库表中。
exists:table,column
image // 验证的文件必须是图片 (jpeg, png, bmp, gif, svg, or webp)
in:foo,bar,... // 验证字段必须包含在给定的值列表中。
not_in:foo,bar,... // 验证字段不能包含在给定的值的列表中
integer // 验证的字段必须是整数。
numeric // 验证字段必须为数值。
ip // 验证的字段必须是 IP 地址。
max:value // 验证中的字段必须小于或等于 value。字符串、数字、数组或是文件大小的计算方式都用 size规则。
min:value // 验证中的字段必须小于或等于 value。同 max
mimes:jpeg,png // 验证的文件必须具有与列出的其中一个扩展名相对应的 MIME 类型。
regex:[0-9] // 验证字段必须与给定的正则表达式匹配。
required // 验证的字段必须存在于输入数据中,而不是空。
required_if:field,value
required_with:foo,bar,...
required_with_all:foo,bar,...
required_without:foo,bar,...
required_without_all:foo,bar,...
same:field // 验证字段的值必须与给定字段的值相同。
size:value // 验证字段必须与给定值的大小一致。字符串(字符数),数字(数值),数组(count),文件(kb)
timezone // 验证字段必须为符合 timezone_identifiers_list 所定义的有效时区标识。
unique:table,column,except,idColumn // 验证字段在给定的数据库表中必须是唯一的。
url // 验证的字段必须是有效的 URL。
laravel8教程:https://www.kancloud.cn/zuohaozhan/laravel8ksrm/2209856
use Hyperf\Di\Annotation\Inject;
#[Inject]
private ValidatorFactoryInterface $validatorFactory;
$validator = $this->validatorFactory->make($params, [
'member_id' => 'required|numeric',
'survey_user_id' => 'required',
],[
'member_id.required' => '用户id必填',
'member_id.numeric' => 'id必须时数字',
]);
if ($validator->fails()) {
// 进行异常处理
// 获取错误信息
throw new ApiException($validator->errors()->first(),400);
}