IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Accéder aux paramètres de la route depuis une classe formulaire


Sujet :

Symfony PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur PHP5
    Inscrit en
    Novembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur PHP5

    Informations forums :
    Inscription : Novembre 2006
    Messages : 63
    Points : 49
    Points
    49
    Par défaut Accéder aux paramètres de la route depuis une classe formulaire
    Bonjour,

    Je pense que le titre est assez clair ^^.

    Je cherche à accéder aux paramètres de la route depuis une classe de formulaire.

    En fait, ce que j'essaie de faire, c'est adapter l'affichage d'un formulaire selon 2 types d'utilisateurs (utilisateur classique et pro) qui ne rempliront pas les mêmes champs en base => donc 2 formulaires différents rassemblés sur une seule page et j'ai donc besoin d'accéder à ce "type" d'utilisateur pour initialiser mon formulaire.

    Depuis le controller c'est assez simple puisque les paramètre de la route sont ceux de la méthode "xxxAction" mais depuis le formulaire je sèche...

    Quelqu'un saurait comment faire ?

  2. #2
    Membre expérimenté Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Points : 1 310
    Points
    1 310
    Par défaut
    Hello,

    Un formulaire n'a pas à avoir accès au routing.

    Pour faire propre, je te suggère de récupérer tes données dans tes contrôleurs et de les passer en paramètre lors de la création de ton form.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Controleur
    $monForm = new MonFormType($param1, $param2);
    Il suffira ensuite d'ajouter le constructeur dans ton formType pour les récupérer.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    //FormType
    private $param1;
    private $param2;
     
    public function __construct($param1, $param2) {
        $this->param1 = $param1;
        $this->param2 = $param2;
    }
    ++

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur PHP5
    Inscrit en
    Novembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur PHP5

    Informations forums :
    Inscription : Novembre 2006
    Messages : 63
    Points : 49
    Points
    49
    Par défaut
    J'ai oublié de préciser un petit quelque chose. Il s'agit du formulaire d'enregistrement de FOSUserBundle.

    J'ai surchargé les classes RegistrationFormType et RegistrationController (en reprenant le code de base qui est dans FOSUserBundle et en brodant autour).

    Le formulaire est récuperé en tant que service :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form = $this->container->get('fos_user.registration.form');
    donc je n'ai pas accès au constructeur (et je ne sais pas comment y avoir accès : je suis débutant rappelons nous >.<).

    Pour me débrouiller, j'ai adapté la méthode buildForm() de RegistrationFormType comme suit, de manière à parser la route et à récupérer l'argument que je veux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $request = Request::createFromGlobals();
    $uriTab = explode('/', $request -> getRequestUri());
    $isPro = end($uriTab) == "pro";
    mais je ne trouve pas ça très clean...

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/03/2013, 20h02
  2. Accéder aux membres d'un WF depuis une custom activity
    Par Louis-Guillaume Morand dans le forum Windows Workflow Foundation
    Réponses: 4
    Dernier message: 13/12/2008, 08h50
  3. Réponses: 1
    Dernier message: 31/08/2008, 19h04
  4. Accéder aux objets de la form1 depuis une class
    Par Jimmy_S dans le forum Windows Forms
    Réponses: 6
    Dernier message: 23/03/2007, 22h47
  5. [C#] Accéder à un control depuis une class
    Par choas dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/05/2006, 13h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo