Je souhaite récupérer des données avec le niveau récursif 3. Le problème est qu'il ajoute tous les 8 modèles liés mais j'ai besoin de données provenant de seulement trois modèles de données. Y at-il un moyen d'ignorer certains modèles ou spécifiquement demandé à certains modèles, mais pas tous. quelque chose comme useModel ('Model1', 'Model2')?CakePHP: Comment spécifier des modèles lors de la récupération des données?
0
A
Répondre
5
Il est préférable d'utiliser le comportement Containable, ce qui vous permettra de spécifier trouver des conditions comme celle-ci:
$this->Post->find('all', array(
'contain' => array(
'Tag',
'Comment' => array(
'User')
)
)
);
également, conjointement avec cela, il est bon de mettre $ récursive à -1 dans votre AppModel.
class AppModel extends Model {
var $recursive = -1;
var $actsAs = array('Containable');
}
Cela vous donnera le contrôle plus vous avez besoin et vous assurer que vos requêtes ne gonflent que plus les relations sont ajoutés à vos modèles au fil du temps.
+0
Il est inutile de définir $ recursive à -1. Juste oubliez qu'il a toujours existé et utilisez toujours Containable. – Leo
indice rapide: recherche de libération dans le manuel – c0rnh0li0
Lier ou annuler ne fonctionne que lorsque le premier niveau est récursif. – Sharj