J'ai finalement réussi en utilisant le set::combine de cake.
Voici le code utilisé dans mon ProductsController comme ça si quelqu'un en a besoin ça peut toujours aider.
function category($id){
$this->Product->contain('Term');
$cat = $this->Product->Term->find('first', array(
'fields' => array('type','id'),
'conditions' => array('id' => $id)
));
if(empty($id)){
throw new NotFoundException('Aucune catégorie ne correspond à ce nom');
}
$ids = $this->Product->Term->TermR->find('all', array(
'fields' => array('id','ref_id'),
'conditions' => array(
'term_id' => $cat'Term']'id']
)
));
$ids = Set::combine($ids,'{n}.TermR.ref_id','{n}.TermR.ref_id');
$this->paginate = array('Product' => array(
'limit' => 6,
'conditions' => array(
'id' => $ids
)
));
$d'products'] = $this->Paginate('Product',array('online'=>1,'created <= NOW()','dispo >= 1'));
$this->set($d);
$this->render('index');
}
Par contre je ne sais pas trop si mon code est optimisé car je viens juste de le faire donc si quelqu'un a des suggestions elles sont les bienvenues :)