Alors dans le andWhere() il faut mettre deux paramètres, pas un (si ce n'est pas une faute de frappe dans le message) 'utilisateur.nom like %', $letter.'%' Au lieu de 'utilisateur.nom like %, $letter.'%''
Il faut essayer de comprendre ce que nous te disons : Dans ton action, tu fais appel à retriveUsersByLetter() Alors que la fonction que tu ecris dans la classe table s'appelle retrieveUsersByLetter() Et ton erreur provient probalement du fait que dans ton action, tu fais appel à Doctrine::getTable() et que cette méthode prend un paramètre String : le nom de la classe Utilisateur. Avec cela, tu ne devrais pas avoir d'erreur (mais je suis faillible, j'ai peut-être laissé passer certaines choses) -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de pascal camjusan Envoyé : jeudi 10 mars 2011 14:04 À : [email protected] Objet : Re: [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie la fonction dans la classe table : public function retrieveUsersByLetter($letter) { $this->createQuery('utilisateur') ->from ('utilisateur') ->andWhere('utilisateur.nom like %, $letter.'%'') ->orderBy('utilisateur.nom') ->execute(); } et le code de l'action : function executeMyAction(sfWebRequest $request){ $this->users = Doctrine::getTable()->retriveUsersByLetter($request->getParameter('letter')) ; } Le 10 mars 2011 12:32, Lélio ML <[email protected]> a écrit : Donne-nous directement le code de l'action et celui de la fonction dans la classe Table -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de pascal camjusan Envoyé : jeudi 10 mars 2011 12:20 À : [email protected] Objet : Re: [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie Les lettres se sont bien affichées, mais lorsque je clique sur une des lettres il y a le message d'erreur suivant : couldn't find class Le 10 mars 2011 12:04, Lélio ML <[email protected]> a écrit : Je n'aurais pas dit mieux. J'aurais juste rajouter l'option de charger tous les users et de faire le découpage par javascript. Mais c'est valable (hors ajax) s'il n'y pas trop d'users pour ne pas avoir une page trop lourde à charger. -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de Jérémy LEHERPEUR Envoyé : jeudi 10 mars 2011 12:00 À : [email protected] Cc : pascal camjusan Objet : Re: [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie Il faut que tu créer une route dans le routing.yml de ton application. user_by_letter: url: /utilisateur/:letter param: { module: utilisateur, action: myAction } Tu remplace utilisateur par le module ouse trouve le code que tu as mis tout a l'heure, et myAction par l'action. ensuite, tu fait un truc du genre dans ton template: <?php foreach(range('a', 'z') as $letter) { $link = url_for("@user_by_letter?letter=$letter") echo "<a href=\"$link\">$letter</a>"; } ?> Tu test et nous redis si tu as un soucis ! Le 10 mars 2011 11:25, pascal camjusan <[email protected]> a écrit : Merci beaucoup a tous les deux =D maintenant j'ai encore un dernier point a eclaircir : comment fait-on pour faire le lien entre les lettres et les requêtes ? je m'explique en fait pour le moment, ne sachant pas trop comment procéder j'ai mis les lettres de la manière suivante : <a href="#">A</a> en tout cas merci beaucoup pour votre aide ;) Le 10 mars 2011 11:08, Lélio ML <[email protected]> a écrit : ;) Yop ! J'ai vu. -----Message d'origine----- De : Jérémy LEHERPEUR [mailto:[email protected]] Envoyé : jeudi 10 mars 2011 11:07 À : [email protected] Cc : Lélio ML Objet : Re: [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie Quelle complémentarité Lelio !! ;) Le 10 mars 2011 11:03, Lélio ML <[email protected]> a écrit : Alors là c'est dangereux ce que tu fais : un paramètre d'une URL directement dans la reuqête SQL. Tu t'exposes à énormément de risques. Ce qu'il faut faire pour commencer c'est lire la doc. Faire le tutoriel Jobbet qui est très bien fait et traduit en plusieurs langues dont le Français. Au-delà, il faut procéder ainsi : Actions : réceptionne les paramètres de l'URL (via $request->getParameter('letter') et lance la méthode de ton objet UserTable. > actions : $this->users = Doctrine::getTable()->retriveUsersByLetter($request->getParameter('letter'); > Doctrine_Table : class UserTable extends Doctrine_Table { // ... public function retrieveUsersByLetter($letter) { $this->createQuery('u') ->andWhere('u.name like %, $letter.'%') ->orderBy('u.name') ->execute(); } } Et tu exploites dans ton template le résultat (Doctrine_Collection) : <ul> <?php foreach($users as $user): ?> <li><?php echo $user ?></li> <?php endforeach; ?> </ul> -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de pascal camjusan Envoyé : jeudi 10 mars 2011 10:10 À : [email protected] Objet : Re: [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie J'ai tenté de faire ceci mais sans succès : <?php $q = Doctrine_Query::Create() ->from('utilisateur u') ->where('u.nom LIKE ?', $_GET(lettre).'%') ?> Comment faire pour que symfony reconnaisse la lettre sur laquelle je clique ? pour le moment au niveau des lettre j'ai fait comme si j'utilisais la methode GET mais je ne pense pas que ce soit la solution. Le 10 mars 2011 09:47, pascal camjusan <[email protected]> a écrit : ah je travaille avec doctrine du coup c'est normal que ça ne marche pas. Est ce qu'il y a beaucoup de différences lorsqu'on utilise doctrine ? Le 10 mars 2011 09:44, Lélio ML <[email protected]> a écrit : Est-ce que tu travailles avec Doctrine ou avec Propel ? Parce que la classe Criteria est lié à Propel. Pour Doctrine, c'est la classe Doctrine_Query. Avec une utilisation un peu similaire. -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de pascal camjusan Envoyé : jeudi 10 mars 2011 09:43 À : Symfony-fr Objet : [symfony-fr] Re: mise en place d'un tri en fonction d'une lettre choisie J'ai trouvé un truc en recherchant un peu. il y aurait une classe appelée Criteria. J'ai donc tenté de reprendre un script mais j'ai pas trouvé ou il se met (directement dans une page success ou dans le action class ou autre ?). voici le code que j'ai trouvé : $c = new Criteria(); $c->add(UserPeer::USERNAME, sprintf("SUBSTR(%s, 1, 1) NOT IN ('%s')", UserPeer::USERNAME, implode("','", range('A', 'Z'))), Criteria::CUSTOM); je l'ai recopié dans ma page avec la liste des utilisateurs mais le message d'erreur suivant m'est affiché : Fatal error: Class 'Criteria' not found in C:\DevSymfony\projects\test \apps\ami\modules\gestionnaire\templates\_listUtilisateur.php on line 15 Quelqu'un saurait dire d'ou vient mon erreur ? merci d'avance ^^ On 9 mar, 17:59, pascal camjusan <[email protected]> wrote: > Bonjour tout d'abord désolé pour la formulation de l'objet je ne > savais pas trop comment m'exprimer > > donc voila en fait je voudrais mettre en place la chose suivante : > > Sur une base de données j'ai une table utilisateur. j'ai donc un > module que j'ai modifié pour afficher la liste des utilisateurs. Ce > que je voudrais faire est de mettre en place un alphabet au dessus du > tableau des utilisateurs pour ensuite faire en sorte que quand on > clique sur unelettre,seulsles utilisateurs dont le nom commence par > cettelettresoit affiché. > > Quelqu'un saurait comment procéder ? merci d'avance =D -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Jérémy LEHERPEUR [email protected] -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Jérémy LEHERPEUR [email protected] -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> <mailto:symfony-fr%[email protected] <mailto:symfony-fr%[email protected]> > . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected] <mailto:symfony-fr%[email protected]> . Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
