CakePHP - modele özgü alanlarda özyinelemeli?

1 Cevap php

CakePHP oldukça yeniyim ama ben onu asmak almak başlıyorum düşünüyorum. Ben ardışık ilgili tablo bilgi çekmeye çalışıyorum, ama ben özyineleme için hangi ilgili modellerini belirtmek istiyorum. Benim hedefe göstermek için size bir örnek vereyim:

Ben vs vs İletişim İsim, sokak, şehir, eyalet, ülke, gibi tek tek kişiler için bilgi içeren "Müşteri" hasMany "Adresler", "Müşteri" Firma adı, web sitesi gibi bilgileri olan bir model "Müşteri", var Bir isim ve açıklama, "Distribütör" veya "Üretici" gibi - Ayrıca sadece açıklayıcı kategori bilgisi vardır "CustomerType", belongsTo.

Ben "Müşteri" bir bulurum ben "CustomerType" ve alt-diziler gibi "Adres" bilgisi ilişkili almak istiyorum, ve bu sadece düzgün hasMany ve belongsTo dernekler kurarak çalışıyor. Ama şimdi, burada benim konu: Ben Devlet / Ülke bilgi ilişkili almak istiyorum. Yani, yerine sadece "state_id" olan her "Adres" dizi satır, bunu "devlet" => array ("id" = 20, "name" = "New York", ... vb) sahip olmak istiyorsanız

Ben daha yüksek bir değere özyinelemeli $ ayarlanırsa (örneğin, 2) Ortak modelinde, ben her "adresi" Devlet / Ülke bilgi için istediğiniz ne olsun. AMA o da "CustomerType" üzerine recurses, ve o benim "Ortak" nesne binlerce uzun olabileceğini bu tür eşleşen tüm Müşteri nesnelerin büyük bir dizi, sahip "CustomerType" alanına sonuçları.

Yani nokta sadece "Adresi", "CustomerType" özyineleme istediğiniz ETMEYİN vardır. Ben bu kurabilirsiniz bir yolu var mı?

Uzun soluklu bir soru için üzgünüm, ve şimdiden teşekkürler!

1 Cevap

Bazen containable çok sorguları oluşturur. Ne istediğinizi elde etmek için başka bir seçenek CustomerType modeli unbind etmektir. Burada daha fazla ayrıntı bulabilirsiniz: http://teknoid.wordpress.com/2008/07/17/forcing-an-sql-join-in-cakephp/, http://mark-story.com/posts/view/using-bindmodel-to-get-to-deep-relations.