Pemahaman Mengenai Padam Lata dengan Doctrine2
Doctrine2 menyediakan kefleksibelan untuk mengkonfigurasi gelagat lata apabila bekerja dengan entiti berkaitan. Walau bagaimanapun, salah tanggapan yang lazim ialah tetapan lata={"remove"} dalam perkaitan entiti akan secara automatik menambah pilihan ON DELETE CASCADE pada lajur kunci asing dalam pangkalan data.
Dalam Doctrine2, terdapat dua jenis yang berbeza daripada lata:
1. Lata Tahap ORM:
2. Lata Tahap Pangkalan Data:
Contoh yang disediakan dalam soalan menggunakan lata peringkat ORM. Walaupun ia akan mengalih keluar objek anak yang berkaitan dengan betul apabila memadamkan induk, ia tidak mencipta pilihan ON DELETE CASCADE dalam pangkalan data. Untuk mencapai matlamat ini, pengubahsuaian berikut diperlukan:
<code class="php">/** * @ORM\ManyToOne(targetEntity="Father", cascade={"remove"}) * * @ORM\JoinColumns({ * @ORM\JoinColumn(name="father_id", referencedColumnName="id", onDelete="CASCADE") * }) * * @var Father */ private $father;</code>
Adalah penting untuk ambil perhatian bahawa menggunakan lata peringkat ORM seperti dalam contoh akan mengakibatkan pengalihan keluar objek induk apabila objek anak dialih keluar. Ini berkemungkinan bukan tingkah laku yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimanakah Doctrine2 Mengendalikan Tingkah Laku dengan ON DELETE CASCADE?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!