我試圖找出一種方法來循環通過驗證方法返回true或false的對象,然後最終知道是否有任何對象返回false。循環驗證檢查,如果其中一個檢查返回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'。但這似乎有點笨拙。
我覺得必須有一個「最佳實踐」如何做到這一點?
更新:其重要的是每個字段運行->validate()
方法。甚至是第一個「假」之後的字段。
謝謝!
那麼,您在問題中編寫的* exact *代碼有什麼問題?這似乎正是你需要的。 – Sammitch 2014-09-25 16:49:35
爲什麼所有驗證方法都運行? – Hammerstein 2014-09-25 16:57:03
@Sammitch:我的代碼永遠不會返回false,因爲這從來沒有設置。另外,如果我確實使用該方法返回$ validate_form的值,那麼結果將只是最後一個方法返回的結果 – 2014-09-25 17:32:28