Php 如何在条令中的父实体之间移动子实体?
我有这样一个密码:Php 如何在条令中的父实体之间移动子实体?,php,doctrine-orm,Php,Doctrine Orm,我有这样一个密码: /** * @Entity @Table(name="Record") */ class Record { public function setParent(Parent $p) { $this->parent = $p; } /** @Id @Column(type="integer") @GeneratedValue **/ private $id; /** @ManyToOne(targetEntity="\Domain\Model\Parent"
/**
* @Entity @Table(name="Record")
*/
class Record
{
public function setParent(Parent $p)
{
$this->parent = $p;
}
/** @Id @Column(type="integer") @GeneratedValue **/
private $id;
/** @ManyToOne(targetEntity="\Domain\Model\Parent", inversedBy="childs")
* @JoinColumn(name="parent" referencedColumnName="id", onDelete="SET NULL")
*/
private $parent;
}
和父类:
/**
* @Entity @Table(name="Parent")
**/
class Parent
{
public function getChilds():array
{
return $this->childs->getValues();
}
/** @Id @Column(type="integer") @GeneratedValue **/
private $id;
/**
* @OneToMany(targetEntity="\Domain\Model\Record, mappedBy="parent")
*/
private $childs;
}
我想把孩子从一个父母转移到另一个父母。以这种方式执行此操作时,不会影响数据库:
public function move(Parent $from, Parent $to)
{
foreach($from->getChilds() as $child)
{
$child->setParent($to);
$entityManager->persist($child);
}
}
我该怎么做?为什么条令会忽略这些更改?您需要$entityManager->flush();就在foreach街区之后。