CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Symfony] Récuperer la variable locale

JoIie
JoIie
Niveau 10
10 juin 2016 à 09:38:26

Bonjour,

J'essaye de faire passer ma variable locale dans cette fonction :

    public function getBodyView() {
        if (is_null($this->appointment)) {
            return 'CarvivoCrmBundle:Mailing:Seller/Lead/newLead.html.twig';
        } else {
            return 'CarvivoCrmBundle:Mailing:Seller/Appointment/newAppointment.html.twig';
        }
    }

Par exemple :

return 'CarvivoCrmBundle:Mailing:maVariableLocale/Seller/Lead/newLead.html.twig';

Ceci pour afficher différentes vus qui sont contenu dans des dossier "fr" "en" "es" etc ...

Dans un fichier twig j'y arrive mais pas en php.

Merci pour votre aide

deepblue
deepblue
Niveau 16
10 juin 2016 à 10:09:45

La valeur de ta variable maVariableLocale vient d'où ? C'est un attribut de ta classe ? Autre chose ?

Message édité le 10 juin 2016 à 10:10:29 par deepblue
JoIie
JoIie
Niveau 10
10 juin 2016 à 10:14:22

La variable locale est dans mon fichier parameters.yml :

locale: en

J'aimerai que le sigle "en" s'insère dans le chemin suivant pour accéder au dossier "en" qui contient les vus :

return 'CarvivoCrmBundle:Mailing:Seller/Lead/newLead.html.twig';

Par exemple si je tape :

return 'CarvivoCrmBundle:Mailing:en/Seller/Lead/newLead.html.twig';

J'accède bien à mon dossier, au lieu de taper directement "en" pour le return, j'aimerai récupérer la variable locale en gros.

deepblue
deepblue
Niveau 16
10 juin 2016 à 10:55:45

getBodyView est la méthode d'un de tes controller ?

deepblue
deepblue
Niveau 16
10 juin 2016 à 13:42:37

Bon, sans ta réponse, je vais développer les quelques façons de faire les choses.

Cas 1 : getBodyView est la méthode d'un controller :

public function getBodyView() 
{
    $locale = $this->getParamter('locale');
    // le reste de ton code avec $locale à concaténer
}

Cas 1 : getBodyView est la méthode d'un service alors tu dois de l'injection de dépendance :

services:
    ton_service:
        class: Namespace\De\Ta\Classe
        arguments: ["%locale%"]

class Classe 
{
    /**
     * @var string
     */
    protected $locale;

    /**
     * Contructor
     *
     * @param string $locale
     */
    public function __constructor($locale)
    {
        $this->locale = $locale;
    }

    /**
     * Returns the view of body
     *
     * @return string
     */
    public function getBodyView() 
    {
        $locale = $this->locale;
        // le reste de ton code avec $locale à concaténer
    }
}

Cas 3 : tu n'est ni dans un controller, ni dans un service : il suffit d'utiliser un paramètre.

public function getBodyView($locale) 
{
    // le reste de ton code avec $locale à concaténer
}
$bodyView = $foo->getBodyView($locale);

$locale sera peuplée de différentes façons suivant l'endroit où la méthode getBodyView est appelée (cf les différents cas que je te présente).

Bon courage :ok:

deepblue
deepblue
Niveau 16
10 juin 2016 à 13:49:14

s/__constructor/__construct/

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment