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]> > .
>>
>> 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
>>
>>
>>
>>
>>
>>
>> --
>> 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].
>> 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
>
--
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].
Pour plus d'options, consultez la page de ce groupe :
http://groups.google.com/group/symfony-fr?hl=fr