Bagaimana untuk Melaksanakan Dengan Betul Pada Delete Cascade dalam Doctrine2?

Susan Sarandon
Lepaskan: 2024-11-04 04:30:29
asal
994 orang telah melayarinya

How to Properly Implement On Delete Cascade in Doctrine2?

Doktrin2: Memahami Pada Lata Padam

Konsep On Delete Cascade dalam Doctrine2 membenarkan pemadaman automatik rekod anak apabila rekod induk dipadamkan. Ciri ini memastikan integriti data dengan mengekalkan integriti rujukan.

Melaksanakan On Delete Cascade dalam Doctrine2

Untuk melaksanakan On Delete Cascade, terdapat dua pendekatan:

  1. Tahap Pemetaan Perkaitan Objek (ORM):

    • Nyatakan lata={"remove"} dalam perkaitan dalam entiti anak.
    • Ini mengarahkan Doktrin untuk mengalih keluar semua objek anak yang berkaitan apabila objek induk dipadamkan. Walau bagaimanapun, ia tidak menjejaskan struktur pangkalan data.
  2. Tahap Pangkalan Data:

    • Tambah onDelete="CASCADE" ke lajur gabungan persatuan dalam entiti anak.
    • Ini mewujudkan kekangan pangkalan data yang memadamkan rekod anak secara automatik apabila rekod induk yang dirujuk dipadamkan.

Membetulkan Entiti Anda

Dalam contoh anda, anda telah menggunakan pendekatan peringkat ORM tetapi terlepas atribut onDelete="CASCADE" pada lajur gabungan. Untuk membetulkan ini, ubah suai entiti Child.php seperti berikut:

<code class="php">/**
 * @ORM\ManyToOne(targetEntity="Father", cascade={"remove"})
 * @ORM\JoinColumn(name="father_id", referencedColumnName="id", onDelete="CASCADE")
 *
 * @var Father
 */
private $father;</code>
Salin selepas log masuk

注意事項

  • Lata peringkat ORM={"remove" } seperti yang sedang dilaksanakan juga akan memadamkan objek induk apabila objek anak dipadamkan. Ini biasanya tidak diingini.
  • Oleh itu, adalah disyorkan untuk menggunakan lata peringkat pangkalan data dengan onDelete="CASCADE" untuk kawalan yang lebih baik ke atas tingkah laku pemadaman.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Dengan Betul Pada Delete Cascade dalam Doctrine2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan