2

私は実際にレコードを削除することのないプロジェクトに取り組んでいます。Doctrineにカスケードでエンティティを「削除済み」(フラグ)に設定させようとしています。これが私が現在持っている関連を説明するための2つのエンティティです。

Model_Account

/**
 * @OneToMany(targetEntity="Model_Profile",mappedBy="Account")
 */
protected $Profiles;

Model_Profile

/**
 * @ManyToOne(targetEntity="Model_Account",inversedBy="Profiles")
 * @JoinColumn(name="AccountId",referencedColumnName="Id",onDelete="CASCADE")
 */
protected $Account;

アカウントを削除するときは、そのアカウントに関連付けられているすべてのプロファイルも削除する必要がありますが、「削除済み」フラグをtrueに設定する必要があります。ここからどこへ行けばいいのかわからない。デフォルトの削除をオーバーライドしてフラグを設定するには、イベントを利用する必要がありますか?

ありがとうございました。

4

1 に答える 1

1

cascade={"remove"}Doctrine2ソフト削除を設定し(拡張機能があります) 、エンティティに設定することで、RDBMSレベルの操作の代わりにDoctrineのカスケード操作を使用します。

于 2012-07-06T21:16:30.423 に答える