Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur de limite de modèle CakePHP et HABTM

pourquoi ne pas utiliser le comportement confinable

// you would probably want the next line in the app_model ot be able to use it with all models
$this->Post->actsAs = array('Containable')
$params['conditions'] = array(
);
$params['contain'] = array(
    'Media' => array(
        'fields' => array(
            'type', 'path', 'title'
        ),
        'limit' => 1
    )
);
$this->Post->find('all', $params);

MODIFIER :

Je viens d'essayer et j'ai obtenu ce sql (Module <-> Tag):

SELECT `Module`.`id` FROM `modules` AS `Module` WHERE 1 = 1 

et

SELECT `Tag`.`id`, `ModulesTag`.`module_id`, `ModulesTag`.`tag_id` 
FROM `tags` AS `Tag` 
JOIN `modules_tags` AS `ModulesTag` 
  ON (`ModulesTag`.`module_id` IN (1, 2, 3, 4) AND `ModulesTag`.`tag_id` = `Tag`.`id`) 
WHERE `Tag`.`belongs_to` = 'Module' 
ORDER BY `Tag`.`name` ASC 
LIMIT 1

évidemment, cela ne peut pas renvoyer le résultat souhaité, car vous devrez effectuer une requête pour chaque résultat de module (ce qui entraînerait à nouveau un trop grand nombre de requêtes).

En conclusion, je renverrais toutes les balises (dans mon exemple) car la surcharge dans trop de lignes de résultats est meilleure que la surcharge de trop de requêtes..