Проблема
Эй, мой массив $isActiefErr
и $naamErr
не заполняется после того, как я сгенерирую исключение, но foreach l oop продолжает проверять значения. Я знаю, что foreach l oop продолжает цикл, потому что массив, который должен иметь все значения, заполняется, но ошибка array
останавливается после того, как он обнаруживает свою первую ошибку.
Что я пробовал:
Я пытался напечатать array
, но он только выдавливает первую ошибку в мой массив. Затем он перестает проверять. Это также показано в моем журнале ошибок. Я думаю, что проблема заключается в попытке / ловле, но я просто не могу подтвердить это из-за недостатка знаний о попытках / ловле.
Вопрос
Как я могу получить массив в pu sh и отобразить все ошибки с блоком try / catch, окружающим его? Или я просто что-то упустил, и проблема не связана с попыткой / ловлей?
Это мой код:
$validateOk = 0;
$setVar = new SetVariable();
$teller = 1;
$save = null;
$validateOk = 0;
$con->beginTransaction();
$weg = TypeQuery::create()->find();
$weg->delete();
try {
foreach ($_POST as $key => $value) {
if (isEven($teller)) {
$validateOk += $setVar->nameval($key)
->onerror($isActiefErr[]) //errors aren't being pushed into this array, besides the first one.
->validator(v::numericVal())
->go();
if ($validateOk == 0) {
$save->setCode(substr($key, 1));
$save->setIsActief($value);
$save->save();
} else {
//ROLLBACK/CATCH
throw new Exception($error);
}
} else {
$validateOk += $setVar->nameval($key)
->onerror($naamErr[])
->validator(v::alpha('/()éá&., '))
->go();
if ($validateOk == 0) {
$save = new Type();
$save->setCode(substr($key, 1));
$save->setNaam($value);
} else {
//ROLLBACK/CATCH
throw new Exception($error);
}
}
$teller += 1;
}
$con->commit();
} catch (Exception $e) {
$error = "Het opslaan is fout gegaan!";
} {
$con->rollback();
}