我有验证问题。在学说1我用这个:学说2验证
if ($model->isValid()) {
$model->save();
} else {
$errorStack = $model->getErrorStack();
...
}
和$ errorStack我得到了列名和错误消息。但在原则2,我可以只使用它:
实体
/**
* @PrePersist @PreUpdate
*/
public function validate()
{
if ($this->name == null)) {
throw new \Exception("Name can't be null");
}
}
控制器:
try {
$user = new \User();
//$user->setName('name');
$user->setCity('London');
$this->_entityManager->persist($user);
$this->_entityManager->flush();
} catch(Exception $e) {
error_log($e->getMessage());
}
,但我有两个问题白衣它:
- 我不知道哪一列?
- 我不想检查独特的手动
如果我跳过从实体的validate()独特的将被逮住(从这个error.log中)
Unique violation: 7 ERROR: duplicate key value violates unique constraint "person_email_uniq"
但例如用户保存2条记录,第一条错误,但第二条有效,在第一条保存之后,EntityManager将关闭,并且由于“EntityManager已关闭”,我无法保存第二条(良好)记录。
哪个是这个问题的最佳解决方案?