这个问题可能过于宽泛。因此,网站使用通用数据库,如果在第2行:
\Doctrine\Repository::getUser()->findById(1)
没问题,但可能会删除此用户。所以6行之后,在第8行:
\Doctrine\Repository::getUser()->findById(1)
会抛出异常!一般解决方案是在请求正在进行时阻止DELETE / UPDATE命令。但是如何?
答案 0 :(得分:2)
您案例的修改示例:
$em->getConnection()->beginTransaction(); // suspend auto-commit
try {
\Doctrine\Repository::getUser()->findById(1)
//... do some work
\Doctrine\Repository::getUser()->findById(1)
// you're done with that particular user
$em->getConnection()->commit();
} catch (Exception $e) {
$em->getConnection()->rollBack();
throw $e;
}
请注意您的存储库正在使用EntityManager的正确实例($em
)
答案 1 :(得分:0)
根据我的经验,完全删除数据库中的任何数据都是不好的做法。看到公司的大数据是一个重要的事情。因此,我建议使用布尔值来“删除”内容,以便您可以随时返回并查看用户和其他内容。但是,如果你真的想删除用户处理异常
应该像
一样if(getUser->findById(1)){
getUser->findById(1);
}else{
return "some error message" ;
}