我有驗證問題。在學說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已關閉」,我無法保存第二條(良好)記錄。
哪個是這個問題的最佳解決方案?