les ORM comme doctrine ou propel te font gagner du temps mais peuvent en faire perdre a ton appli si ils sont pas utilisé intelligement :)
on retiendra de tout ca qu'il faut verifié les reqs effectué et faire gaffe a l'ORM qui aime faire des reqs :p On 9 sep, 17:50, "[MA]Pascal" <[email protected]> wrote: > Bonjour, > > Si tu spécifies un select() dans ta requête (ce qui est une bonne > idée) tu dois spécifier tous les champs que tu utilises sinon doctrine > va aller faire des requêtes en select * pour palier les manques. > > Dans ton cas tu as entre autre oublié les champs query_from, query_to. > > De plus si tu utilises des champs issus de table externes > http_type.http_code http_type.name alors tu dois aussi les spécifier > dans ton select (h.* ou h.name, h.http_code) sans oublié le leftJoin. > > Bon courage > [MA]Pascal > > On 9 sep, 14:23, SomeOne <[email protected]> wrote: > > > Bonjour à tous, > > J'ai un léger petit souci avec symfony qui me fait 60 requêtes pour > > une simple pages. > > Débutant avec ce framework je ne sais pas bien comment résoudre le > > problème. > > Alors voila ce que je fait : > > dans mes action je fait : > > $this->redirect = Doctrine::getTable('Redirect')->retrieveRedirectFrom > > ($this->id); > > et la methode qui vas avec : > > public function retrieveRedirectFrom($id) > > { > > $q = Doctrine_Query::create() > > ->select('r.id, r.id_user, df.name, dt.name, > > r.id_domain_to, r.id_domain_from, r.id_httptype, > > r.modified_date, > > r.rank') > > ->from('Redirect r') > > ->leftJoin('r.RedirectFrom df') > > ->leftJoin('r.RedirectTo dt') > > ->where('r.id_domain_from = ?', $id ); > > return $q->execute(); > > } > > et le logs : > > sept. 09 16:21:27 symfony [info] {sfDoctrineLogger} executeQuery : > > SELECT r.id AS r__id, r.id_user AS r__id_user, r.query_from AS > > r__query_from, r.query_to AS r__query_to, r.id_domain_to AS > > r__id_domain_to, r.id_domain_from AS r__id_domain_from, r.id_httptype > > AS r__id_httptype, r.modified_date AS r__modified_date, r.rank AS > > r__rank FROM redirect r WHERE r.id = ? LIMIT 1 - (1 ) > > sept. 09 16:21:27 symfony [info] {sfDoctrineLogger} executeQuery : > > SELECT h.http_code AS h__http_code, h.name AS h__name FROM http_type h > > WHERE h.http_code = ? - (301 ) > > sept. 09 16:21:27 symfony [info] {sfDoctrineLogger} executeQuery : > > SELECT h.http_code AS h__http_code, h.name AS h__name FROM http_type h > > WHERE h.http_code = ? - (301 ) > > sept. 09 16:21:27 symfony [info] {sfDoctrineLogger} executeQuery : > > SELECT r.id AS r__id, r.id_user AS r__id_user, r.query_from AS > > r__query_from, r.query_to AS r__query_to, r.id_domain_to AS > > r__id_domain_to, r.id_domain_from AS r__id_domain_from, r.id_httptype > > AS r__id_httptype, r.modified_date AS r__modified_date, r.rank AS > > r__rank FROM redirect r WHERE r.id = ? LIMIT 1 - (3 ) > > ... > > ... > > ... > > ... > > sept. 09 16:21:28 symfony [info] {sfDoctrineLogger} executeQuery : > > SELECT h.http_code AS h__http_code, h.name AS h__name FROM http_type h > > WHERE h.http_code = ? - (301 ) > > > Grossomodo il fait 2 requêtes par ligne affiché. > > Comment puis-je corriger cela ? --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" de Google Groupes. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour afficher d'autres options, visitez ce groupe à l'adresse http://groups.google.com/group/symfony-fr?hl=fr -~----------~----~----~----~------~----~------~--~---
