0

我有ApparelUser课。每个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();

在此处输入图像描述

4

1 回答 1

1

我的猜测是创建新用户的原因是因为您正在使用不受 Doctrine 管理的对象并且可能允许级联创建。

所以我的建议是从会话中获取用户 ID 并尝试,

$user = $userRepository->find($userId) 

然后打电话,

$apparel->setUser($user);
于 2013-10-17T18:02:51.397 回答