我有Apparel
和User
个类。每个user
都可以有多个apparels
。 apparel
只能属于一个User
class Apparel
{
/**
* @ORM\ManyToOne(targetEntity="User", inversedBy="apparels", cascade={"persist"})
* @ORM\JoinColumn(name="user_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $user;
}
class User
{
/**
* @ORM\OneToMany(targetEntity="Apparel", mappedBy="user")
*/
private $apparels;
}
问题是我在更新时会将新用户添加到数据库中。
这是我的控制器
$user = $this->get('session')->get('user');
$apparel->setUser($user);
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($apparel);
$entityManager->flush();
答案 0 :(得分:1)
我的猜测是创建新用户的原因是因为您正在处理一个不受Doctrine管理的对象,并且可能允许级联创建。
所以我的建议是从会话中获取用户ID并尝试
$user = $userRepository->find($userId)
然后致电,
$apparel->setUser($user);