Php 条令:更新整个实体

Php 条令:更新整个实体,php,symfony,orm,doctrine-orm,cascade,Php,Symfony,Orm,Doctrine Orm,Cascade,首先是一些代码: class User { * @ORM\OneToMany(targetEntity="Profile", mappedBy="user") */ protected $profiles; } (有更多的代码,但这是影响我的问题的部分) 比如我有 已在数据库中 User1: id = 1 Profile1: id = 1, parent = User1 Profile2: id = 2, parent = User2 尚未持续 Profile3:

首先是一些代码:

class User {
     * @ORM\OneToMany(targetEntity="Profile", mappedBy="user")
     */
    protected $profiles;
}
(有更多的代码,但这是影响我的问题的部分)

比如我有

已在数据库中

User1: id = 1
Profile1: id = 1, parent = User1
Profile2: id = 2, parent = User2
尚未持续

Profile3: 
Profile4: 
我想做的是能够打电话:

$user1->removeAllProfiles(); $user1->addAllNewProfiles(array($profile3, $profile4));
这将自动删除所有旧配置文件并添加所有新配置文件


我希望我想要达到的目标是明确的。有人有想法吗?

您可以更新您的属性注释,以利用
删除

/** @OneToMany(targetEntity="Profile", mappedBy="user", orphanRemoval=true) */
protected $profiles;
这告诉Doctrine删除没有关联的
User
对象的所有配置文件,因此当您调用
$User->removeAllProfiles()时
然后调用
$em->flush()
任何以前的
配置文件
与用户关联的对象都将从数据库中删除