Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro de limite do modelo CakePHP e HABTM


por que não usar o comportamento contido
// 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);

EDITAR:


Apenas tentei isso e obtive este sql (Módulo <-> Tag):
SELECT `Module`.`id` FROM `modules` AS `Module` WHERE 1 = 1 

e
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

obviamente, isso não pode retornar o resultado desejado, pois você teria que fazer uma consulta para cada resultado do Módulo (o que, novamente, resultaria em muitas consultas).

Como conclusão, eu retornaria todas as Tags (no meu exemplo), pois a sobrecarga em muitas linhas de resultados é melhor do que a sobrecarga de muitas consultas.