我试图根据另一个密钥的值来验证一个密钥。在下面的示例中,我尝试基于has_sub_category的值来验证category_children.has_sub_category可以为true或false。如果为false,则category_children应该为空数组。如果为true,则不应为空。
category_children: Joi.when('category_has_sub_category',
{is: false,
then: Joi.array().max(0),
otherwise: Joi.array().items(Joi.objectId()).min(1)}),
category_has_sub_category: Joi.boolean(),
但是上面的代码似乎不起作用。当has_sub_ category为false且category_children不为空并且反之亦然时,它将得到验证
答案 0 :(得分:0)
您非常接近,只需要使用any.allow(...values)
来允许一个空数组。
所以改变这个
then: Joi.array().max(0)
对此
then: Joi.array().max(0).allow([])