Merci à vous deux,
Déjà Mikachu, ce n'est pas le lien qui pose problème, mais le traitement derrière (et de plus sort requière des strings et non un array enfin bref...)
BenFarhat, merci pour cette solution, mais je ne comprends pas pourquoi le contain fonctionne bien à partir d'un niveau et qu'au deuxième niveau cela ne fonctionne plus.
Je viens de voir pourquoi ça ne fonctionne pas...
Au lieu de me faire une seule requête, il me fait la requête principale et ensuite plusieurs requêtes pour aller chercher mes projets liés au version:
SELECT `Defect`.`id`, `Defect`.`severity_id`, `Defect`.`found_by_user_id`, `Defect`.`assigned_to_user_id`,
`Defect`.`version_id`, `Defect`.`found_in_build`, `Defect`.`fixed_in_build`, `Defect`.`title`, `Defect`.`content`,
`Defect`.`status_id`, `Defect`.`location_id`, `Defect`.`show_stopper`, `Defect`.`fixed_date`, `Defect`.`modified`,
`Defect`.`created`, `Severity`.`id`, `Severity`.`title`, `Severity`.`content`, `found_user`.`id`,
`found_user`.`username`, `found_user`.`is_admin`, `found_user`.`is_manager`, `found_user`.`is_active`,
`found_user`.`is_dev`, `found_user`.`is_qa`, `assigned_user`.`id`, `assigned_user`.`username`,
`assigned_user`.`is_admin`, `assigned_user`.`is_manager`, `assigned_user`.`is_active`, `assigned_user`.`is_dev`,
`assigned_user`.`is_qa`, `Version`.`id`, `Version`.`title`, `Version`.`project_id`, `Status`.`id`, `Status`.`title`,
`Status`.`is_open`, `Location`.`id`, `Location`.`content`, `Location`.`project_id` FROM `defects_dbo`.`defects` AS
`Defect` LEFT JOIN `defects_dbo`.`severities` AS `Severity` ON (`Defect`.`severity_id` = `Severity`.`id`) LEFT JOIN
`defects_dbo`.`users` AS `found_user` ON (`Defect`.`found_by_user_id` = `found_user`.`id`) LEFT JOIN
`defects_dbo`.`users` AS `assigned_user` ON (`Defect`.`assigned_to_user_id` = `assigned_user`.`id`) LEFT JOIN
`defects_dbo`.`versions` AS `Version` ON (`Defect`.`version_id` = `Version`.`id`) LEFT JOIN `defects_dbo`.`stati` AS
`Status` ON (`Defect`.`status_id` = `Status`.`id`) LEFT JOIN `defects_dbo`.`locations` AS `Location` ON
(`Defect`.`location_id` = `Location`.`id`) WHERE 1 ORDER BY `Defect`.`id` DESC LIMIT 10
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 25
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 29
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 29
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 29
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 24
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 35
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 24
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 24
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 35
SELECT `Project`.`id`, `Project`.`title` FROM `defects_dbo`.`projects` AS `Project` WHERE `Project`.`id` = 21
Si quelqu'un sait comment inclure la sous requête des projets liés à la version dans la requête du haut, cela fonctionnera !
J'ai cherché et cela pourrait être possible avec <u>les JOINS</u>.
Je continue mes recherches !
<u>Notes importantes :</u> quand je fais un simple 'order'=>'Version.Project.title' il retourne une erreur sql comme quoi la clé n'existe pas, normal !! Car il sépare les requêtes des projets...
Donc la solution de se problème réside dans la suppression de ces sous-requête sur les projets et les mettres dans la requête principale , et évidement sans à avoir à taper la query à la main, en utilisant les outils cakePHP.
Merci d'avance
Et merci à tous ceux qui m'ont déjà bien aidé à deblayer le problème.
Cordialement