繁体   English   中英

laravel 数组键验证规则

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM