Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/01/2011, 21h54   #1
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Par défaut Lire une donnée en base

Bonjour à tous,

Alors voila, mon problème est le suivant. Je dispose de plusieurs modules symfony dans mon projet. Dans un module, j'insère une donnée en base et je voudrais pouvoir l'afficher dans un autre module. J'aurai voulu savoir les différentes méthodes pour m'afficher cette donnée dans mon template (si plusieurs méthodes il y a).

Merci beaucoup
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 01h16   #2
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Avec une question aussi vague, il y a de quoi écrire un livre avec les réponses.

Faudra préciser un peu (beaucoup) la demande pour avoir une chance d'avoir une réponse.

Structure des données. Ce que tu veux en faire. Pourquoi elle doit ce trouer là. Quel genre d'écran (liste, détail, autre...). Doit-elle être affichée ou modifiée. Un début de piste pour aiguiller les réponses.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 06h53   #3
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Bonjour Michel et merci pour ta réponse.

Alors voilà, je vais essayer d'être plus précis.

Je dispose d'une table membre dans laquelle j'ai des informations sur un membre (nom, prénom, ville, age, ...). Chaque enregistrement de cette table est renseignée dans un module "Membre" via un formulaire classique. Cette partie est OK.

Dans un autre module, je souhaiterai afficher, la ville de ce membre (détail) comme un simple libellé. Cette donnée sera là, à but purement informatif, elle n'a pas besoin d'être modifiée.

J'espère avoir été plus clair.
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 10h50   #4
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Un peu, mais pas assez.

Comment retrouve-t-on la ville du membre a afficher ? Est-ce en liaison avec d'autres données ?

Quel sont les autres données affichées ?

Quel est le traitement prévu pour ces données ?

Le membre est-il celui qui est logué ? Authentifié ?

Comment sont récupéré les autres données ?

Est-ce sur un seul écran ou sur plusieurs écran différent ?

Répondre à toutes les questions possible permettra d'avoir plus vite une réponse
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 11h20   #5
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
Alors :

- la ville du membre à afficher est un champ dans la table Membre. Elle a été renseignée par ailleurs. C'est un attribut d'un membre qui est connecté au site et pour le moment étant donné que j'ai très peu de tables dans ma base (je viens de commencer ), un simple SELECT ville FROM Membre where email = "XXXX" me permettrait de récupérer la ville.

. Dans ce module-ci, je ne veux afficher que la ville mais dans d'autres modules, je peux avoir besoin de récupérer d'autres données du membre.

Dans ce module ci, il n'y a pas d'autres données concernant le membre à afficher. Seule sa ville m'interesse. Pour tout dire, il s'agit d'un module de météo. Je n'affiche que la ville de ce membre et le reste est effectué exterieurement (via RSS et compagnie ...)

Le membre est bien celui qui s'est authentifié. Lors de l'authentification, il renseigne ses noms, prenoms, email et mot de passe (1er formulaire). Lors de sa première connexion, il rentre des infos complémentaires (2ème formulaire - sexe, ville et date de naissance). C'est là que je récupère bien ma ville et l'insère en base dans ma table Membre.

Mon souci consiste donc maintenant à récupérer sa ville dans mon module météo.

Merci pour ton implication Michel
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h11   #6
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Quel est le système d’authentification utilisé ? sfGuar ? Propriétaire ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h16   #7
Membre habitué
 
Inscription : juillet 2006
Messages : 664
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 664
Points : 132
Points : 132
proprietaire. J'ai fait un truc à ma sauce, en suivant le tuto se trouvant sur le site: La ferme du web
__________________
Le seul, le vrai Facebook killer
https://www.weetool.com
identifiant_bidon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/01/2011, 12h55   #8
Modérateur
 
Avatar de Michel Rotta
 
Homme Michel Rotta
Responsable d'exploitation informatique
Inscription : septembre 2005
Messages : 4 913
Détails du profil
Informations personnelles :
Nom : Homme Michel Rotta
Âge : 49
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Responsable d'exploitation informatique
Secteur : Distribution

Informations forums :
Inscription : septembre 2005
Messages : 4 913
Points : 7 505
Points : 7 505
Je ne connais pas ce tuto...

Mais j'ai une idée précise de la solution.

Dans le cas particulier de données issues directement de l'enregistrement d'un utilisateur, le plus simple est d'y donner accès depuis l'objet user.

Je suppose que tu as travaillé sur l'objet myUser et lui a rajouté des classes. Je suppose aussi que, dans cet objet tu y a stocké, dans les attributs, l'Id de l'utilisateur authentifié.

Tu as deux méthodes pour accéder au reste des données, les deux présentent des avantages et inconvénients, à toi de choisir celle qui te parle le plus et est la plus avantageuse à intégrer.

Première méthode, tu stockes, en même temps que l'Id de l'utilisateur dans l'objet user les autres informations nécessaires (ici la ville). Tu n'as plus, alors, qu'à les récupérer depuis l'objet user qui est accessible depuis le contrôleur comme depuis le template. Inconvénient, si les données sont modifiée (par l'utilisateur, un administrateur, un traitement batch), elle ne seront mises à jour qu'au login suivant, sauf à mettre en place des procédures compliquées pour relire les informations dans l'objet, ou a utiliser la méthode deux.

Deuxième méthode, tu crées dans myUser une méthode qui permet de récupérer le sfRecord du user courant. Comme tu te dis que tu risques, dans une même instance d'avoir a faire appel à cette méthode plusieurs fois, et pour ne pas multipliser les requêtes SQL pour récupérer le même enregistrement, tu vas le stocker dans une propriété static de ton objet. Donc, au lancement de la méthode, tu vérifies si un objet est déjà dans la propriété static, si oui, tu le retournes (pas de requête), si non, tu récupères l'enregistrement, le stocke dans la propriété et le retourne. Avantage, si les données sont modifiées il aura la dernière version. Inconvéniant, il y a un accès à la base de donnée pour chaque instance lancée.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
  • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
  • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
  • Une discussion est terminée ? Alors le bouton est votre ami !
Michel Rotta est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h15.


 
 
 
 
Partenaires

Hébergement Web