Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果验证具有空值的Laravel数组,则需要_Php_Laravel_Request - Fatal编程技术网

Php 如果验证具有空值的Laravel数组,则需要

Php 如果验证具有空值的Laravel数组,则需要,php,laravel,request,Php,Laravel,Request,我有以下的意见 { "password":"password", "environment_roles":[ { "environment_id":"", "role_id":"" } ], "admin":true }

我有以下的意见

{
    "password":"password",
    "environment_roles":[
        {
            "environment_id":"",
            "role_id":""
        }
    ],
    "admin":true    
}
并具有具有以下规则的请求类:

 public function rules()
    {
        return [
            'password'                              => 'required|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$/',
            'environment_roles'                     => 'array',
            'environment_roles.*.role_id'           => 'required_if:admin,false|exists:roles,role_id',
            'environment_roles.*.environment_id'    => 'required_if:admin,false|exists:environment,environment_id',
            'admin'                                 => 'sometimes'
        ];
    }
但是,如果我给出上面的输入,它将显示以下验证错误,该输入的
admin
true

"validation": {
            "environment_roles.0.role_id": [
                "The selected environment_roles.0.role_id is invalid."
            ],
            "environment_roles.0.environment_id": [
                "The selected environment_roles.0.environment_id is invalid."
            ]
        },

我怎样才能解决这个问题。当
admin
的值为true时,我需要验证
environment\u roles.*.role\u id
environment\u roles.*.environment\u id
的值。

如果您总是发送admin prop,则更适合将其设置为null而不是必需的。你可以试试这个:

公共功能规则()
{
返回[
“密码”=>“必需”|最小值:6 |正则表达式:/^(?=.[a-z])(?=.[a-z])(?=.[a-z])(?=.*\d)。+$/”,
“环境_角色”=>“数组”,
'environment_roles.*.role_id'=>'nullable | required|如果:admin,false |存在:roles,role_id',
'environment_roles.*.environment_id'=>'nullable|必需|如果:admin,false |存在:environment,environment_id',
“admin”=>“bool |有时”
];
}

但您的错误表明数据库中不存在角色和环境id(exists规则)。将这两个字段设置为nullable意味着它不会触发exists规则。

如果您总是发送admin prop,则更适合将其设置为nullable not required。你可以试试这个:

公共功能规则()
{
返回[
“密码”=>“必需”|最小值:6 |正则表达式:/^(?=.[a-z])(?=.[a-z])(?=.[a-z])(?=.*\d)。+$/”,
“环境_角色”=>“数组”,
'environment_roles.*.role_id'=>'nullable | required|如果:admin,false |存在:roles,role_id',
'environment_roles.*.environment_id'=>'nullable|必需|如果:admin,false |存在:environment,environment_id',
“admin”=>“bool |有时”
];
}

但您的错误表明数据库中不存在角色和环境id(exists规则)。将这两个字段设置为nullable意味着它将不会触发exists规则。

显示了什么验证消息?@lagbox已更新。您是否查看了
exclude\u if
exclude\u除非
规则?显示了什么验证消息?@lagbox已更新。是否查看了
exclude\u if
exclude\u除非
规则?