CakePHP 1.2.5 Çoklu Modellerinin sayfalandırılması

1 Cevap php

Ben büyük bir ızgara düzeni içine blog yazılarını, yorum ve yüklenen medya öğeleri karıştırır bir blog için bir görünümü üzerinde çalışıyorum. CakePHP ve dernekler tek tek modelleri kurduğunuz, bazıları aşağıdaki gibidir:

Comment BelongsTo Post or Media
Post HasMany Media

Ben her üç model sıralamak için çalışıyor ile çalışıyorum ne (Comment, Media, Post) Sonra paginate bir veri büyük bir diziye.

Ben zaten veritabanında 'oluşturulan' datetime alan var. Ben CakePHP'ye PaginationHelper kullanarak tek tek veritabanı aramaların her sayfalandırmamayı anlamak. Ben de diziler birleştirdi. Ancak, bireysel veritabanı aramaları ve ardından dizileri birleştirme karıştırma o PaginationHelper (anladığım kadarıyla) ile çalışmıyor gibi pagination kırmak gibi görünüyor.

Bunu yapmak için herhangi bir öneriniz var mı?

Ayrıca, veritabanı sayısı aşağı çağırır tutmak istiyorum, bu nedenle bu doğrultuda herhangi bir öneriniz çok iyi olurdu. Teşekkürler!

~ Andrew

1 Cevap

Bu 3 modelleri ile ilgili seçmek BİRLİĞİ çeşit kullanmak istiyoruz gibi geliyor. Sen modelin varsayılan paginate ve paginateCount yöntemlerini geçersiz kılarak bu elde edebilirsiniz. Temelleri Cook Book kaplıdır (http://book.cakephp.org/view/249/Custom-Query-Pagination).

Bunu gibi find ('sorgu') ile find (tüm) değiştirmek isteyeceksiniz gibi geliyor:

/**
 * Overridden paginate method - group by week, away_team_id and home_team_id
 */
function paginate($conditions, $fields, $order, $limit, $page = 1, $recursive = null, $extra = array()) {
    $recursive = -1;
    $group = $fields = array('week', 'away_team_id', 'home_team_id');
    return $this->query('SELECT field1, field2 FROM table1 
                         UNION SELECT field1, field2 FROM table2 
                         LIMIT '.(($page-1)*$limit).', '.$limit);
}