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

Laravel 如何在验证规则中添加`OR`运算符?,laravel,validation,digits,Laravel,Validation,Digits,我在Laravel 5.7中使用验证。我想在验证中使用数字10或16作为id_编号。我怎么办?有什么建议吗 public function rules() { return [ 'id_number' => 'required|digits:10 or digits:16', ]; } 您可以在验证规则中使用它 return [ 'params.personal_information.id_number' => 'required|

我在Laravel 5.7中使用验证。我想在验证中使用数字10或16作为id_编号。我怎么办?有什么建议吗

public function rules()
{
    return [
        'id_number' => 'required|digits:10 or digits:16',
    ];
}
您可以在验证规则中使用它

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]),
    ],
]);
请检查文件是否有误

编辑:-

作为您的评论,您希望id_编号应介于10到16之间,以便您可以使用between规则

您可以在验证规则中使用它

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]),
    ],
]);
请检查文件是否有误

编辑:-

作为您的评论,您希望id_编号应介于10到16之间,以便您可以使用between规则


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

否则,在您的情况下,该选项可能会起作用:

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

上面的代码ins not tested

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

否则,在您的情况下,该选项可能会起作用:

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

以上代码未测试

感谢您的回复。事实上,我指的是10或16个数字字符,而不仅仅是10或16个数字。你指的是10到1610,11,12,13,14,15,16之间的数字吗?不,我指的是id_数字可以是10个数字。1234567890或16位数字示例。1234567891234567对不起,我不能清楚地解释我的问题。这里有一个方法,但它会检查10到16个方法。或者你可以做一件事,你可以让你的自定义验证器作为数字限制10或16应该被接受。得到你的解决方案吗?如果是,请告诉我您是如何做到的?谢谢您的回复。事实上,我指的是10或16个数字字符,而不仅仅是10或16个数字。你指的是10到1610,11,12,13,14,15,16之间的数字吗?不,我指的是id_数字可以是10个数字。1234567890或16位数字示例。1234567891234567对不起,我不能清楚地解释我的问题。这里有一个方法,但它会检查10到16个方法。或者你可以做一件事,你可以让你的自定义验证器作为数字限制10或16应该被接受。得到你的解决方案吗?如果是,请告诉我您是如何做到的?谢谢。。这个代码是错误的,但我发现我应该使用正则表达式。。谢谢你。。这个代码是错误的,但我发现我应该使用正则表达式。。谢谢