我正在Laravel 5.7中使用验证。我想在验证中使用10或16的数字作为id_number的数字。我该如何处理?有什么建议吗?
public function rules()
{
return [
'id_number' => 'required|digits:10 or digits:16',
];
}
答案 0 :(得分:3)
您可以使用In
验证规则。
return [
'params.personal_information.id_number' => 'required|in:10,16',
];
或者使用Rule::in
,您可以这样使用。
use Illuminate\Validation\Rule;
Validator::make($data, [
'params.personal_information.id_number' => [
'required',
Rule::in([10, 16]),
],
]);
请检查文档中的more info
修改:-
作为评论,您希望id_number应该在10到16之间,以便可以使用between
规则。
'params.personal_information.id_number' => 'required|between:10,16',
答案 1 :(得分:1)
您可以通过添加新的rule object或添加rule extension来创建自己的规则。
否则,regex-rule可能适用于您的情况:
'foo' => 'regex:/^(\d{10}|\d{16})$/i'
(上面的ins代码未经测试)