Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 07-01-2016 16:13:35

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

[Résolu] Traduction de l'alias d'un champ

Bonjour à tous,

tout d'abords, je voulais vous souhaiter une bonne année et plein de réussite dans vos projets !

Je rencontre un petit problème avec Doctrine et n'ayant pas trouvé de solution sur internet, je me tourne donc vers vous...

Au niveau de certaines de mes vues, j'ai un bouton qui permet l'export de certaines données présente dans cette vue.
Le problème se situe au niveau des alias de champs que je souhaite traduire (application multilangue).
Pour certains alias, j'ai par exemple des mots contenant des caractères spéciaux (exemple : N°), des suites de mots (exemple : code postal) ou des mots avec des accents.
J'ai essayé de passer les mots à traduire avec la classe Expr en literal mais j'ai ce type d'erreur :

Code:

[lang=php]
Error: Expected Doctrine\ORM\Query\Lexer::T_FROM, got 'N°'

Voici la requête :

Code:

[lang=php]
$qb = $this->_getEm()->createQueryBuilder();
        $qb->select([
                'p.idprovider AS ' . $translator->translate('idprovider'),
                'p.name AS ' . $translator->translate('name'),
                'tl.text AS ' . $translator->translate('category'),
                'a.address AS ' . $translator->translate('address'),
                'a.postalcode AS ' . $translator->translate('postalcode'),
                'a.city AS ' . $translator->translate('city'),
                'a.telephone AS ' . $translator->translate('telephone'),
                'a.email AS ' . $translator->translate('email'),
                'p.website AS ' . $translator->translate('website')
        ])
            ->from('Provider\Entity\Provider', 'p')
            ->leftJoin('Application\Entity\Address', 'a', 'WITH', 'a.idaddress = p.address_id')
            ->leftJoin('Provider\Entity\ProviderProviderCategory', 'ppc', 'WITH', 'ppc.provider_id = p.idprovider')
            ->leftJoin('Provider\Entity\ProviderCategory', 'pc', 'WITH', 'pc.idprovider_category = ppc.provider_category_id')
            ->leftJoin('Application\Entity\Translation', 'tl', 'WITH', 'pc.name = tl.idtranslation AND tl.language_id = \''.$this->languageId.'\'')
            ->groupBy('p.idprovider');

Si je laisse cette requête comme ci-dessus, j'ai également une erreur du même type
Une idée ?

Merci d'avance,
Romain

Dernière modification par RomainG (20-01-2016 09:26:23)

Hors ligne

 

#2 15-01-2016 08:21:15

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: [Résolu] Traduction de l'alias d'un champ

Bonjour a tu reglé ton problème ?


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#3 15-01-2016 09:14:25

flobrflo
Membre
Lieu: Marseille
Date d'inscription: 26-04-2013
Messages: 376

Re: [Résolu] Traduction de l'alias d'un champ

Hello,
quand tu dit que tu a par exemple :
'code postal', on est d'accord qu'il s'agit de:  $translator->translate('postalcode')?

Auquel cas je peu comprendre que tu ai besoin de traduire tes noms de champs mais je ne pense pas que l'endroit décrit ici soit le plus adapté:

Ta requête devrait toujours te renvoyer le même résultat, par contre à l'affichage (un display ou un export, peu importe) tu peu a ce moment-ci afficher la traduction de ton alias.
Et ça te permettrais d'éviter de te torturer avec une traduction doctrine ^_^

Dernière modification par flobrflo (15-01-2016 09:14:47)

Hors ligne

 

#4 15-01-2016 11:07:26

JGreco
Administrateur
Date d'inscription: 22-12-2012
Messages: 432

Re: [Résolu] Traduction de l'alias d'un champ

Je suis d'accord avec flobrflo, il y a d'autre solution que de mettre les traduction DANS la requête. Les mettre plus tard, si tu prend l'exemple du module ZfcDatagrid, lors de ton export, la colonne possède une propriété accédant au Translator qui te traduirai le nom de la colonne et les valeur du champs... le principe est le même, tu récupère tes donnés avec une requête tout ce qui as de plus normal, et ensuite tu t'emploi dans ta classe d'export a traduire les champ et les valeurs, si jamais.


ZF2 et doctrine addict
profil stack overflow : http://stackoverflow.com/users/3333246/ … ab=profile

Hors ligne

 

#5 20-01-2016 09:26:07

RomainG
Membre
Date d'inscription: 10-06-2015
Messages: 65

Re: [Résolu] Traduction de l'alias d'un champ

Bonjour,
désolé pour la réponse tardive... Alors j'ai suivi votre conseil et j'ai placé la fonction de traduction au niveau de ma classe qui gère l'export en csv. C'était tout bête mais je n'y avais pas pensé...

Merci à vous deux wink

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages