iyi uygulamalar, bu yüzden, kaskad eylemi silmek çağırmak olamaz. Aynı zamanda, yii2 uygulamamdaki ilgili kayıtları silmek istiyorum. Bunu nasıl yapabilirim?Sil ilgili kayıtlar - <em>MyISAM</em> bunu desteklemediği için My veritabanı</em> motor kaputu altında <em>MyISAM kullanan
cevap
Not: çözümü, yalnızca ActiveRecord delete method'u kullanırsanız çalışacaktır.
beforeDelete yöntemini kullanabilir ve ilgili kayıtları buradan silebilirsiniz - bu durumda kodu bir kez yazacaksınız ve her defasında $model->delete()
numaralı telefonu aradığınızda yürütülecektir.
Veya EVENT_BEFORE_DELETE etkinliğine işleyici ekleyebilirsiniz.
Geç cevap için özür dilerim. Her şeyden önce optimizasyonun veritabanının kendisine (doğru indeksler vb.) Bağlı olduğunu düşünüyorum. Bir seçenek olarak, ilgili kayıtları silen ve bu prosedürü çağıran saklı yordam yaratabilirsiniz ... – rkm
Tetikleyiciler oluşturmaya ne dersiniz? –
https://stackoverflow.com/questions/31110462 sayfasına bakın. –
Bu sorunu gidermek için birkaç seçenek vardır.
1) DB tarafında trigger oluşturun:
public function beforeDelete() {
if (!parent::beforeDelete()) {
return false;
}
// ... custom code here ...
return true;
}
Tetikleyiciler başvuru bütünlüğü zorlanarak daha hızlı ve iyi, işte bu yüzden: yii2 beforeDelete işlevi içinde
CREATE TRIGGER trigger_name
BEFORE DELETE ON table_name FOR EACH ROW
BEGIN
-- variable declarations
-- trigger code
END;
2) Sil ilgili kayıtlar Onları seçtim.
- 1. T-SQL Sil Eklenen Kayıtlar
- 2. MySQL MyISAM tablo kilitleme
- 3. alma kullanan edilemiyor <Vakfı/NSXMLDocument.h>
- 4. Git, <<<<<<< HEAD dosyasına
- 5. Sınıf << kendini ne anlama geliyor? İlgili
- 6. gizler: my AppDeleagate en <strong>didFinishLaunchingWithOptions ise</strong></p> <p>: iOS 8
- 7. ng-grid headerRowTemplate - Bunu kullanan var mı?
- 8. Terminal OSX: "dize" komutu bunu elde etmek için <code>objective-c</code></p> <p>ekran/ekran üreticileri almak gerekir
- 9. <p>My etiketi değerlerinin</p> veritabanında saklanır,
- 10. EJS: <% = versus <% -
- 11. ngChange ile ilgili sorunlar, <select> için, 1.3.0 rc0
- 12. laravel: My tablo adı <code>customers</code> sütundur
- 13. : my ramaze uygulamasında <code>£</code> sembolü görüntülenirken benim ramaze app
- 14. Dinamik türlerle ilgili açıklamalara göz atmak için <a0></ a0>
- 15. . Ben de giriş yaptıktan sonra kullanıcı yönlendirme ile ilgili bir sorun bu gibi görünüyor için</p> <p>My giriş giriş erişim php
- 16. Kayıtlar
- 17. Kayıtlar
- 18. Perl'de "% _" nedir?</p> <pre><code>@list = grep { !$_{$_}++ } @list; </code></pre> <p>tekilleştirme için bir deyim gibi:
- 19. Beklenmeyen belirteç <Özelleştirilen Chrome için Çözüm</ a0> için <a1></ a1> 403 Page
- 20. Operatörler << sınıfları için biçimlendirmeli misiniz?
- 21. İşte</p> <pre><code>[[a,3],[b,3]] </code></pre> <p>olduğunu</p> <p>sonucu olmalıdır
- 22. kıvılcım akışı Ben sürekli Hadoop klasöründen akışlarını oku</p> <p>My programı akışı kıvılcım kullanıyorum
- 23. Scala Harita # get ve scala <code>Map#get</code> fonksiyonunu kullanan bazı()
- 24. aşırı yük operatörü << ama sadece sınıf içinde, bir yapı kullanır ve bunu yapı için < < operatörünü aşırı istediğiniz bir sınıf
- 25. Hazırda bekleme ile ilgili kayıtlar bir sql sorgu ile
- 26. <smtp> öğesinin "from" özelliği <system.net><mailSettings> içinde neden var? Bunu nasıl kullanabilirim?
- 27. MyISAM ve InnoDB tabloları bir veritabanında
- 28. myISAM ve InnoDB tabloları için yabancı anahtarlar
- 29. Ben Intellij IDEA var ve bunu 4.</p> <p>glassfish bağlanamıyorum 4
- 30. Sql: rekor bunu buldum bazı <em>SQL Ayarlama</em> belgeleri okuma
Olası kopyası [Yii2: Veri tabanından ilgili modellerin verileri nasıl silinmeli?] (Https://stackoverflow.com/questions/31110462/yii2-how-to-simultaneously-delete-related-models-data- veri tabanından) –