0

nn 関係を持つ 2 つのエンティティがあります。参照エンティティにはいくつかの追加フィールドがあるため、このように 3 つのエンティティ間の関係を変更する必要があります。

User --(1-n)-- UserAddress --(n-1)-- Address

User エンティティには、UserAddress へのマッピングがあります。

<one-to-many target-entity="UserAddress" mapped-by="user" field="addresses">
   <cascade>
     <cascade-all/>
    </cascade>
</one-to-many>

私のユーザーエンティティ:

protected $addresses;

public function addAddress(UserAddress $address)
{
    $this->addresses[] = $address;

    return $this;
}

public function removeAddress(UserAddress $address)
{
    $this->addresses->removeElement($address);
}

public function getAddresses()
{
    return $this->addresses;
}

public function __construct()
{
    $this->addresses = new ArrayCollection();
}

$user->removeAddress($address)でユーザー アドレス コレクションからアドレスを削除しようとすると、$addresses 配列を再確認すると、そのアドレスは削除されています。しかし、データベースにはまだ存在しています。データベースの 2 つのフィールド (UserAddress テーブルに 1 つ、Address テーブルに 1 つ) を削除する予定です。どうやってやるの?

4

2 に答える 2