J'utilise le framework Zend MVC avec un calque ORM généré avec Propel, et j'essaie de trouver le meilleur moyen d'intercepter les exceptions de la fonction save() d'un objet Propel, et de lancer les au formulaire Zend comme des erreurs. Toutes les exceptions qui sortent de l'objet Propel ne permettent pas d'identifier le champ qui a provoqué l'erreur. Je me demande donc s'il existe un moyen d'ajouter des messages d'erreur génériques au formulaire entier, plutôt que d'être forcé à attacher chaque message d'erreur à un élément de formulaire particulier.Validation de niveau de formulaire dans Zend Framework
Par exemple, j'ai une sauvegarde() appel enveloppé dans un bloc try/catch, et je peux ajouter le exception-> getMessage() aux erreurs d'un élément de forme:
try {
$obj->save();
echo 'object saved successfully';
} catch (Exception $e) {
$form->name->addErrorMessage($e->getCode()." - ".$e->getMessage());
$form->name->markAsError();
$form->populate($formData);
}
mais je voudrais pour être en mesure de faire quelque chose comme ceci:
try {
$obj->save();
echo 'object saved successfully';
} catch (Exception $e) {
$form->addErrorMessage($e->getCode()." - ".$e->getMessage());
$form->markAsError();
$form->populate($formData);
}
J'espère que le bon sens, grâce à l'aide,
Dave
Je peux vérifier tous les champs dans la couche de formulaire avec Zend, mais je veux toujours faire exploser les erreurs de Propel comme vérification finale. J'intégrerais idéalement toutes les erreurs possibles qui pourraient sortir de Propel dans la couche de formulaire dans Zend, mais pour l'instant je veux juste empêcher une soumission de formulaire d'aller à une mauvaise page d'erreur PHP. Je vais devoir faire des recherches pour trouver la meilleure façon d'obtenir des erreurs de contraintes de clés uniques dans Zend_Form. Merci de votre aide, –