让我们说,我有一个评论功能,当名称仍然不存在时,应始终将用户添加到数据库。
目前我首先进行检查,如果不成功,我会创建一个新的实体并持久保存用户。
//try to find userName in DB
$user = $this->entityManager->getRepository('AppBundle:User')->findByName($userName);
//create new user if not existing
if (!$user) {
$user = new \AppBundle\Entity\User();
$user->setName($userName);
$this->entityManager->persist($user);
}
稍后会将$user
实体添加/链接到$comment
实体。然后一切都会被冲洗。
现在我的问题是,不仅一个评论被刷新,而且通常是多个评论一起。看来,新用户会写一个以上的评论。
然后我在repo中的检查不起作用,因为新用户只是持久但尚未刷新。我会遇到一个独特的失败,或者新用户名会被添加两次。
我知道,我可以使用新的持久用户创建一个数组,并在检查repo时检查此数组。但我想知道是否有处理这个问题的学说方法?