我试图找到一种方法,用返回true或false的验证方法循环对象,然后最终知道是否有对象返回false。
$validate_form = true;
//Loop through groups
foreach ($this->field_groups as $field_group) {
//Loop through fields
foreach ($field_group->fields as $field) {
$validated = $field->validate($data[$field->name]);
//if any of these returned false, set $validate_form to false
}
}
return $validate_form;
但我根本无法思考如何实现这一目标。我曾想过使用一个数组,然后检查数组中是否有"false"值。但这似乎有点笨拙。
我觉得必须有一个"最佳实践"来做这件事?
UPDATE:重要的是每个字段都运行->validate()
方法。甚至是第一个"false"之后的字段。
谢谢!
您可以使用以下选项:
$validate_form = true;
//Loop through groups
foreach ($this->field_groups as $field_group) {
//Loop through fields
foreach ($field_group->fields as $field) {
$validated = $field->validate($data[$field->name]);
//if any of these returned false, set $validate_form to false
if (!$validated)
{
$validate_form = false;
break;
}
}
}
return $val_form;
"break;"将停止循环。