Bonjour,
Dans le tutoriel pour la création de model en POO.
Comment cela se passerait il s'il on a une requête qui fait une jointure ?
Donc pas seulement sur category ou tuto, mais par exemple si on cherche tous les tutoriels dans une catégorie . on devra faire une jointure. et je vois pas trop en fait.
Oui je comprends bien, en SQL j'aurais fait ca. et cela aurait été simple.
Mais la ce n'est plus tres clair avec les hasMany et BelongsTo
Est il possible de faire les choses a l'ancienne ? car parfois je me dit que ce truc, ca ne servira que dans cakephp, mais il suffira un jour d'une migration pour se rendre compte qu'il est difficile de passer a autre chose.
ça devrait ressembler à ceci :
//Select LEFT JOIN
public function leftJoin($fields=null, $table2, $champON1, $champON2, $conditionWhere1, $conditionWhere2)
{
if($fields==null){ $fields = "*"; }
$sql = "SELECT $fields FROM ".$this->table. " LEFT JOIN $table2 ON $champON1 = $champON2";
$sql.= " WHERE :cond1 = :cond2";
$req = $this->dbh->prepare($sql);
$data = array(":cond1"=>$conditionWhere1, ":cond2"=>$conditionWhere2);
$req->execute($data);
return $req->fetchAll();
}
Je vais demander à quelqu'un d'autres de contrôler la syntaxe svp ? Peut-être que ce code peut être amélioré ???
Merci d'avance.
bee
je trouve que c est insense de faire un left join comme ca. plus compliquer ca sert a quoi ?
Je pense que c'est toi qui n'a pas compris l'utilisation.
Pour l'utilisation, il suffit de passer quelques paramètres. Le code ci-dessus ne devra plus être ré-écrit !
Exemple pour l'utilisation :
$req = new Model;
$req->table = 'TableTest';
$req->leftJoin("table2","champ1","champ2","cond1","cond2");
Maintenant, si tu crois pouvoir faire mieux, j'attends tes suggestions !
bee
Bon j'ai vois a peu pres, et la je trouve que l'on perds beaucoup de temps. si on a besoins de faire une requete specifique.