Internationalisation sous Symfony

0 views
Skip to first unread message

OphyTe

unread,
Apr 28, 2007, 3:06:06 PM4/28/07
to Symfony-fr
Bonjour,

je vais vous décrire un peu mon projet histoire que vous compreniez
bien le problème.
voila un morceau du schema.yml qui génère ma BDD:
---
propel:
membre:
_attributes:
idMethod: native
id:
specialite1:
type: INTEGER
foreignTable: specialite
foreignReference: id
specialite2:
type: INTEGER
foreignTable: specialite
foreignReference: id
specialite3:
type: INTEGER
foreignTable: specialite
foreignReference: id
specialite:
_attributes: { phpName: Specialite }
id:
type: INTEGER
foreignTable: specialite_i18n
foreignReference: id
specialite_i18n:
_attributes: { phpName: SpecialiteI18n }
name: varchar(50)

Après avoir généré le CRUD du modules membre je cherche à avoir les
noms de specialités (dans la bonne langue) pour la création/édition/
listing d'un membre et non leur id ...

Est-ce que vous pourriez m'aider à y arriver, merci

OphyTe

unread,
Apr 29, 2007, 8:05:10 PM4/29/07
to Symfony-fr
Il y avait une p'tite coquille dans le schema.yml, voila le bon (un
peu complété entre temps) ...

----------------------------------------------------------------------------------

propel:
membre:
_attributes: { phpName: Membre }
id:
operateur_id: { type: integer, default: 1, primaryKey:
false, foreignTable: operateur, foreignReference: id, required: true }
specialite1: { type: integer, primaryKey: false,
foreignTable: specialite, foreignReference: id, required: true }
specialite2: { type: integer, primaryKey: false,
foreignTable: specialite, foreignReference: id }
specialite3: { type: integer, primaryKey: false,
foreignTable: specialite, foreignReference: id }
{...}

operateur:
_attributes: { phpName: Operateur }
id:
pseudo: varchar(255)
{...}

specialite:
_attributes: { phpName: Specialite }
id:

specialite_i18n:
_attributes: { phpName: SpecialiteI18n }
name: { type: varchar(255), required: true }

----------------------------------------------------------------------------------
Désolé pour l'indentation, ça passe pas trop bien sous Google
Groups ...

Pour récupérer le nom d'une spécialité dans la liste des membres de
l'interface CRUD je fais :

//Dans Membre.php
public function getSpecialite1Name()
{
return parent::getSpecialiteRelatedBySpecialite1()->getName();
}

//Dans le template listSuccess.php
<?php echo $membre->getSpecialite1Name() ?>

mais ça retourne rien du tout. Pourtant j'ai bien définit une culture
par défaut et elle est bien en place.
"<?php echo $this->getContext ()->getUser()->getCulture () ?>"
retourne bien "fr_FR" d'ailleurs le debuggueur de Symfony l'affiche
bien dans les variables globales.

OphyTe

unread,
Apr 29, 2007, 10:04:24 PM4/29/07
to Symfony-fr
Je précise que j'ai beau mettre une fonction __toString() dans la
classe Specialite.php comme ça :

public function __toString()
{
return $this->getName();
}

ça me retourne une liste d'éléments vides (dans le menu déroulant de
l'édition notament) !

Jason - Antiquites-en-France.com

unread,
May 2, 2007, 7:59:23 PM5/2/07
to symfo...@googlegroups.com

as tu verifié que tu avais bien des enregistrements dans ta table _i18n
correspondant a la fois a la specialite et a la fois a la culture utilisée ?
si ça te retourne des champs vides c'est peut etre justement que ça marche

OphyTe a écrit :

Reply all
Reply to author
Forward
0 new messages