我使用Zend MVC框架以及用Propel生成的ORM圖層,我試圖找出從Propel對象的save()函數中捕獲異常的最佳方法,並拋出他們以Zend表格作爲錯誤。Zend框架中的表單級別驗證
並非所有來自Propel對象的異常都有一種方法來確定哪個字段導致錯誤,所以我想知道是否有一種方法可以將通用錯誤消息添加到整個表單中,而不是被迫將每個錯誤消息附加到特定的表單元素。
例如,我有一個保存()調用包裝在try/catch塊,我可以添加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中唯一的關鍵約束錯誤的最佳方法。謝謝你的幫助, – 2010-02-02 15:00:17