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 13/12/2007, 12h29   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 18
Points : 14
Points : 14
Par défaut Accéder à une methode d'une autre classe

Bonjour,

voila j'ai un module City et un module country
voici le schema des tables

citys:
city_id:
country_id:
city_name:

countrys
country_id
country_name

je souhaiterai en faite afficher country_name au lieux de country_id dans mon module city

et je sais pas comment faire
ali-el est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 13h57   #2
Rédacteur
 
Avatar de MasterOfChakhaL
 
Homme
Développeur Web
Inscription : juin 2004
Messages : 2 148
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : Conseil

Informations forums :
Inscription : juin 2004
Messages : 2 148
Points : 2 628
Points : 2 628
Salut,

Quand tu récupères tes city, il te suffit de le faire avec un doSelectJoinCountrys au lieu d'un doSelect.

Je te conseille de virer le 's' dans le nom de tes table (dans le schema.yml)

Si ton schéma est tel que tu nous le donnes. il faudrait que ton champ country_id s'appelle countrys_id pour que symfony puisse deviner qu'il s'agit d'une clé étrangère.

Avec le schéma suivant:
Code yml :
1
2
3
4
5
6
7
8
9
 
city:
  id:
  country_id:
  name:
 
country:
 id:
 name:

tu devrais faire dans l'action:
Code php :
1
2
 
$this->mycitys = cityPeer::doSelectJoinCountry();
et dans la vue tu aurais accès au nom de cette manière:
Code php :
1
2
3
4
 
foreach($mycitys as $mycity ) {
  echo $mycity->getCountry()->getName();
}

Renseigne toi bien sur le fichier schema.yml afin de voir comment on peut déclarer les clés étrangères
MasterOfChakhaL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 15h56   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2006
Messages : 18
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 18
Points : 14
Points : 14
Merci pour votre aide MasterOfChakhaL effectivement je suis débutant sous synfony
ali-el est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2007, 22h07   #4
Nouveau Membre du Club
 
Inscription : juin 2004
Messages : 38
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 38
Points : 26
Points : 26
salut,
Ou sinon ali tu peux ajouter un __toString().

dans le dossier lib qui se trouve a la racine de ton site tu peux ajouter dans tes classes la fonction
ex :
classe nomTable extend ....
{
public function __toString()
{
return $this->getName()
}
}

la function toString et la function par default qui te premettra de gerer l'affichage de l'objet. En gros au lieu d'afficher l'id il affiche ce qui est retourner pas la function __toString().

maintenant si tu ajoute cette fonction dans tes classes généré par propel(par default) l'objet affichera ce qui est retourné par cette function. Qui est pour ma par une fonction super utile.
hipe est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h30.


 
 
 
 
Partenaires

Hébergement Web