[英]laravel array key validation rule
我想验证一个请求的数组,它就像:
"accountType": {
"admin" : true,
"advertiser": true,
"publisher": true,
"agency": true
},
我想检查 admin 是否为真,什么都不做并通过,但如果 admin 为假而其他人为真,或者 accountType 对象验证中没有 admin 会抛出错误,例如:无效的帐户类型。
换句话说,我想检查请求数组中是否有管理员通过验证,如果没有并且有其他类型显示错误,反之亦然。
这是我的验证,但无论如何它都通过了:
$validator = Validator::make($this->request->all(), [
'accountType.admin' => 'boolean:true',
'accountType.advertiser' => 'boolean:false',
'accountType.publisher' => 'boolean:false',
'accountType.agency' => 'boolean:false',
]);
尝试
$validator = Validator::make($this->request->all(), [
'accountType.admin' => 'required|boolean:true',
'accountType.advertiser' => 'boolean:false',
'accountType.publisher' => 'boolean:false',
'accountType.agency' => 'boolean:false',
]);
应该可以解决问题,从文档中可以看出:验证中的字段必须能够转换为布尔值。 接受的输入是真、假、1、0、“1”和“0”。
$validator = Validator::make($this->request->all(), [
'accountType.admin' => 'boolean',
'accountType.advertiser' => 'boolean',
'accountType.publisher' => 'boolean',
'accountType.agency' => 'boolean',
]);
您可以将您的值更改为 1 为 true 和 0 为 false 然后验证如下:
$validator = Validator::make($this->request->all(), [
'accountType.admin' => 'required|min:1',
'accountType.advertiser' => 'required|min:1',
'accountType.publisher' => 'required|min:1',
'accountType.agency' => 'required|min:1',
]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.