CakePHP diyor ki:
Modeller veriyi temsil ve veri erişimi için CakePHP uygulamalarda kullanılır. Bir model genellikle bir veritabanı tablosunu temsil eder ama bir şey erişmek için kullanılabilecek böyle bir CSV dosyası dosyalar, LDAP kayıtları, iCal olaylar, ya da satır gibi veri depolar.
(http://book.cakephp.org/view/66/Models)
Temelde, modeli, iş verilerinin kalıcı depolama temsil eder. Normal olarak, bu veri tabanıdır.
Veritabanlarından ve nesneler hakkında konuşmaya başladığınızda, genellikle PHP çerçeveler Models uygulamak kaç olduğunu çok tartışılan 'nesne-ilişkisel haritalama' aleme düşer.
Bir Model genellikle bir tablodaki bir satır gösterir, ama aynı zamanda birden çok tablodan satır bir grup olabilir. Bir Model yollar sonsuz sayıda temsil edilebilir: Bir metin dosyası gibi basit bir şey için bir Doctrine db nesnesi gibi karmaşık ve şişirilmiş bir şey.
Modellerini temsil tercih edilen yoldur ana masada modelin başına bir satır ilgili herhangi bir üst tabloları ile katıldı ve herhangi bir alt tablo üye nesneleri içeren olduğunu. Etkili bu uygulamak için tek yol, tüm nesneleri seferde alinabilir ve böylece gereksiz sorguları yapmazlar böylece bir tür 'Collection' sınıfını kullanmaktır.
Edit: Bir veritabanına gezileri sayısını en aza indirmek istiyorsanız doğrudan sorunuzu yanıtlamak için, evet, bir "bulucu" veya "Koleksiyon" class kesinlikle gereklidir. Her model kendi kendine yeterli olsaydı, tek tek 'FROM tablo WHERE id = x' sorguları yüzlerce yapıyor olurdum. Bir bulucu veya Koleksiyon sadece birden çok satır SELECT ve Model nesneleri içine veri dökümü olabilir.