Я использую среду Zend MVC вместе с слоем ORM, сгенерированным с помощью Propel, и я пытаюсь найти лучший способ поймать исключения из функции save() объекта Propel и бросить их к форме Zend как ошибки.Проверка уровня формы в Zend Framework
Не все исключения, которые выходят из объекта Propel, имеют способ определить, какое поле вызвало ошибку, поэтому мне интересно, есть ли способ добавить общие сообщения об ошибках во всю форму, а не быть принудительно прикреплять каждое сообщение об ошибке к определенному элементу формы.
К примеру, у меня есть вызов сохранить(), завернутый в Try/поймать блок, и я могу добавить exception-> GetMessage() к ошибкам элемента формы в:
try {
$obj->save();
echo 'object saved successfully';
} catch (Exception $e) {
$form->name->addErrorMessage($e->getCode()." - ".$e->getMessage());
$form->name->markAsError();
$form->populate($formData);
}
, но я хотел бы чтобы быть в состоянии сделать что-то вроде этого:
try {
$obj->save();
echo 'object saved successfully';
} catch (Exception $e) {
$form->addErrorMessage($e->getCode()." - ".$e->getMessage());
$form->markAsError();
$form->populate($formData);
}
Я надеюсь, что имеет смысл, спасибо за помощь,
Дэйву
Я могу проверить все поля в слое формы с помощью Zend, но я все еще хочу выпустить ошибки Propel в качестве окончательной проверки. В идеале я бы включил все возможные ошибки, которые могли бы возникнуть из Propel обратно в слой формы в Zend, но пока я просто хочу, чтобы представление формы не попадало на неприятную страницу ошибок PHP. Мне нужно будет провести некоторое исследование, чтобы выяснить лучший способ устранения уникальных ошибок ограничения ключа в Zend_Form. Спасибо за вашу помощь, –