我正在数据库中实现订阅。电子邮件必须是唯一的,所以我在数据库中有一个唯一的索引。我的页面初始化中有这段代码:
$f = $p->add('MVCForm');
$f->setModel('Account',array('name','surname','email'));
$f->elements['Save']->setLabel('Subscribe');
if($f->isSubmitted())
{
try
{
$f->update();
//More useful code to execute when all is ok :)
}
catch(Exception_ValidityCheck $v)
{
//Handles validity constraint from the model
$f->getElement($v->getField())->displayFieldError($v->getMessage());
}
catch(SQLException $se)
{
//If I'm here there is a problem with the db/query or a duplicate email
}
}
中唯一的信息SQLException
是格式化的 HTML 消息,这是检测错误是否来自重复条目的唯一方法吗?