Retrieve posts with their latest comment in CakePHP -


say have model post , model comment related follows:

post hasmany comment  comment belongsto post 

how use find('all') retrieve every post associated latest comment?

i have tried defining hasone relationship in post as:

var $hasone = array('latestcomment' => array('classname' => 'comment', 'order' => 'latestcomment.created desc')); 

but when post->find('all') returns every post multiple times, once per each comment, latestcomment set different comments.

you can add 'limit' => 1 array of parameters return 1 comment.

alternatively, instead of defining relationship, can limit number of comments returned when perform find, using containable behaviour.

$this->post->find('all',array(                      'contain' => array(                           'comment' => array(                               'order' => 'comment.created desc',                               'limit' => 1                           )                       )                   ); 

this useful if want filter related sets without defining relationships - author, or within date range, example.

make sure add containable behaviour model reference.


Comments

Popular posts from this blog

linux - Mailx and Gmail nss config dir -

c# - Is it possible to remove an existing registration from Autofac container builder? -

php - Mysql PK and FK char(36) vs int(10) -