私の目的は、エンティティに接続されたサウンドトラックのレコードが他にない場合にのみ、エンティティ アーティストのレコードを削除することです。
私はこの方法で orphanRemoval を試しました:
Soundtrack.php
/**
* @Assert\NotBlank(message = "soundtrack.artists.blank")
* @ORM\ManyToMany(targetEntity="Artist", inversedBy="soundtrack", cascade={"persist", "remove"}, orphanRemoval=true)
* @ORM\JoinTable(name="soundtrack_artist")
* @ORM\OrderBy({"name" = "ASC"})
**/
private $artists;
アーティスト.php
/**
* @ORM\ManyToMany(targetEntity="Soundtrack", mappedBy="artists")
*/
private $soundtrack;
しかし、エンティティ レコードのサウンドトラックを削除すると、他のレコードのサウンドトラックにリンクされている場合でも、エンティティ アーティストのレコードもクリアされます (これは orphanRemoval に期待すべきことだと思います)。
他のレコードが接続されていない場合にのみ、そのレコードを「孤立」として削除する方法はありますか?
私もこのように試しました:
**Soundtrack.php**
/**
* @Assert\NotBlank(message = "soundtrack.artists.blank")
* @ORM\ManyToMany(targetEntity="Artist", inversedBy="soundtrack", cascade={"persist"}, orphanRemoval=true)
* @ORM\JoinTable(name="soundtrack_artist")
* @ORM\OrderBy({"name" = "ASC"})
**/
private $artists;
ただし、レコード エンティティ アーティストは削除しません。