如何在验证规则中添加OR运算符?

我正在Laravel 5.7中使用验证。我想在验证中使用10或16的数字作为id_number的数字。我该如何处理?有什么建议吗?

public function rules()
{
    return [
        'id_number' => 'required|digits:10 or digits:16',];
}
lqy33333333 回答:如何在验证规则中添加OR运算符?

您可以使用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,
,

您可以通过添加新的rule object或添加rule extension来创建自己的规则。

否则,regex-rule可能适用于您的情况:

'foo' => 'regex:/^(\d{10}|\d{16})$/i'

上面的ins代码未经测试

本文链接:https://www.f2er.com/3038100.html

大家都在问