Ben çok-çok köprü tabloda (AB) ile iki veritabanı tablosu (A ve B onları aramak sağlar) var. Ben her üç tablo Zend_Db_Table modelleri yazdım.
Ben örnek Zend_Db_Row kullanılarak veritabanından çıkarılan bir A_Row nesne var :: yöntem bulmak. Şimdi bu satır ile ilişki içinde olan tüm satırları, bir tablo yazdırmak olsun gerek. Sorun bu tablo paginated olması gerekir, ancak tablo B_Rowset bir yöntem kullanılarak işlenir olduğunu.
(Ben Zend_Paginator kullanmak istiyorsanız) İki seçenek görebiliyorum
1) Kullan Zend_Paginator_Adapter_Iterator findManyToManyRowset tarafından döndürülen satır kümesi sayfalandırmamayı. Bu şuna benzer:
$b_rowset = $a_row->findManyToManyRowset('B_Table', 'AB_Table');
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_Iterator($b_rowset));
Ancak iki sorun vardır:
a) Tüm sonuç kümesi (sayfadaki öğeleri değil sadece) getirildi.
b) tablo HTML işlemek için B_Rowset bir yöntem kullanmak, bu yüzden sonuç setine geri sonuçları dönüştürmek gerekir.
Bu çözüm biraz çirkin görünüyor.
2) elle Zend_Db_Table_Select Yapı ve Zend_Paginator_Adapter_DbTableSelect kullanın.
Ama Zend_Db_Table_Select ile çoklu tablo sorguları bina çok sevimsiz (ve sonuçları B_Rowset dönüştürülür gerekir). Ben büyük olasılıkla dağınık kod 50 ya da öylesine hatları ile sona erecekti.
I could use either method (and I would likely be done faster than writing this post), but I want to see some opinions, how to solve this nicely (since I expect to encounter this scenario again and again).