Symfony - 持久化 ManyToMany 关系



还有其他方法可以更好地编写这段代码吗?我在这里错过了什么吗?

$user->addEntity($entity);
$entity->addUser($user);

$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->persist($entity);

您只能从关系的拥有端添加;然后只能persist该对象并刷新它。

例如,如果您的注释是这样的

class User
{
  /**
   * @ORMManyToMany(targetEntity="Entity", inversedBy="users")
   * @ORMJoinTable(name="user_entity")
   */
  protected $entities
}
class Entity
{
  /**
   * @ORMManyToMany(targetEntity="User", mappedBy="entities")
   */
  protected $users;
}

你可以这样做

$user->add($entity); 
$em = $this->getDoctrine()->getManager();
$em->flush();

如果从 db 获取$user并且不是新对象,则可以跳过persist

相关内容

  • 没有找到相关文章

最新更新