Donc, nous savons tous que la documentation pour Kohana 3 est absolument horrible. Alors, comment puis-je construire la requête suivante, où j'ai un modèle "Player" et "Dragon"?Kohana 3 ORM: requêtes avancées, efficacité
SELECT * FROM `dragons` JOIN `players` ON (`dragons`.`player_id` = `players`.`player_id`) WHERE `uid` IN (1,2,3) ORDER BY `dragons`.`id` ASC
Je peux utiliser ORM::factory('dragon')->join("players")->on("dragons.player_id", "=", "players.player_id")
pour se rendre à la rejoindre une partie, mais je ne peux pas la clause in
. Il n'y a pas de fonction in
dans l'ORM de Kohana 3. J'ai essayé la fonction where
, mais il met des citations autour du troisième paramètre, donc ma liste d'ID devient une chaîne et la requête devient invalide. Alors qu'est-ce que je peux faire? Je ne peux pas comprendre comment ajouter des morceaux personnalisés de SQL à mes requêtes de chargement ORM. Encore une fois, parce que la documentation n'existe pas. La seule façon dont je peux penser maintenant est de simplement charger tous les joueurs appropriés, les boucler et récupérer leurs dragons. Mais cela semble vraiment stupide - beaucoup plus de requêtes que nécessaire. Je me suis senti comme ça avant, que l'utilisation d'ORM rend les choses horriblement inefficaces à la fin de l'interrogation, afin de le rendre un peu plus facile à coder. Est-ce vrai?
@Le développeur Pixel: oui, c'est possible – zerkms
@The Pixel Developer Vous avez transformé ma réponse médiocre en un bon - merci! – alex
Pas de problème alex. Ne vaut pas vraiment sa propre réponse pour 3 lignes et puisque vous avez déjà fait la plupart du travail, je pensais qu'il serait préférable d'améliorer le vôtre :) –