【问题标题】:Symfony - persisting ManyToMany relationSymfony - 坚持多对多关系
【发布时间】:2017-01-19 17:25:49
【问题描述】:

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

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


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

【问题讨论】:

标签: php symfony doctrine-orm


【解决方案1】:

您只能从关系的owning side 添加;然后你可以persist 只使用那个对象并刷新它。

例如,如果你的注解是这样的

class User
{
  /**
   * @ORM\ManyToMany(targetEntity="Entity", inversedBy="users")
   * @ORM\JoinTable(name="user_entity")
   */
  protected $entities
}

class Entity
{
  /**
   * @ORM\ManyToMany(targetEntity="User", mappedBy="entities")
   */
  protected $users;
}

你可以这样做

$user->add($entity); 

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    相关资源
    最近更新 更多