我有一个仅包含字段的表单:
选择是一个数组,因为问题不仅仅包含答案,而且用户可以根据需要添加任意数量。
我只需要验证它们是否为空,就可以尝试:
$validation = $this->c->validator->validate($request, [
'question' => v::notEmpty(),
'choice[]' => v::ArrayVal()->each()->notEmpty()
]);
但是它不允许我保存任何条目。如果我将choice []保留为“ choice”,它将验证每个条目。我认为规则一定是错误的。
答案 0 :(得分:1)
您可以使用KeySet验证器:
$response = v::keySet(
v::key('question', v::notEmpty()),
v::key('choice', v::arrayVal())
)->validate($request);
在使用给定值的情况下:
$request = [
'question' => 'What is your first name?',
'choice' => []
];
验证返回true
。
在使用给定值的情况下:
$request = [
'question' => 'What is your first name?',
'choice' => ''
];
验证返回false
。