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 :

Modifier l'option 'query' du sfWidgetFormDoctrineChoice [1.x]


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut Modifier l'option 'query' du sfWidgetFormDoctrineChoice
    Bonjour,
    Es ce que ce possible modifier la requête de l'option 'query' du widget sfWidgetFormDoctrineChoice dans l'action? On fait, ma liste des choix doit être diffèrente selon un critère choisir auparavant donc, la requête associer à la option 'query' n'est pas toujours la même. J'ai essayer le code ci-dessous mais ça ne fonctionne pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public function executeAjouter(sfWebRequest $request)
        {
            $this->formTache = new TacheForm();
    $query = Doctrine_Query::create()->from('Tache t')->where('t.id_activite = ?', $this->getUser()->getAttribute('idActiviteSelectionee'));
    $this->formTache->setOption('query', $query);
     
            return $this->renderPartial('form', array('formTache' => $this->formTache));
        }
    Après avoir passer pour cette action, j'ai toujours dans mon widget le résultat de la requête défini dans le modèle.

    Merci d'avance.

  2. #2
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Bonjour,

    Passez la valeur lors de la création du formulaire et passez lui la valeur à votre sfWidgetFormDoctrineChoice()

    Pour les formulaire 99% tout ce que vous souhaitez faire ce fait dans la classe form (la dans ce cas c'est TacheForm()).

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    Merci pour votre réponse. Donc, si j'ai bien compris je doit surcharger le constructeur de ma classe form pour lui dire que dans certaines cas il auras une paramètre, et ce paramètre je l'utilise lors de la construction de mon sfWidgetFormDoctrineChoice. Ou tous ça c'est automatique et je dois juste passer ma requête au constructeur de ma classe form?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->formTache = new TacheForm($query);
    Si je dois surcharger le constructeur, ou je dois le faire? dans la function configure de ma classe form?

    Merci

  4. #4
    Membre émérite Avatar de kenny.kev
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    646
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 646
    Par défaut
    Normalement dans le lib\form\doctrine tu as une liste de tous les formulaires de ton projet.

    Tous ces fichiers sont la pour que tu puisse customiser le formulaire comme pour ton cas.

    Je te redirige vers ce lien car ufretin indique comment faire cela :
    http://www.developpez.net/forums/d11...ormulaire-new/

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 42
    Par défaut
    ça y est on fait je n'ai pas besoin de redéfinir le constructeur car ils on trois paramètres par défaut et celui qui m'intèrese est le seconde donc je fait comme ça dans mon action:

    On est obligé à mettre null comme premier paramètre parceque le constructeur prends celui ci lors du bind avant l'enregistrement. C'est le seconde qui sera utiliser pour les options.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function executeAjouter(sfWebRequest $request)
        {
         $query = Doctrine_Query::create()->from('Tache t')->where('t.id_activite = ?', $this->getUser()->getAttribute('idActiviteSelectionee'));
     
          $this->formTache = new TacheForm(null, array('query' => $query));
          ...
    et comme ça dans ma classe formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    class TacheForm extends BaseTacheForm
    {
      public function configure()
      {
          $query = $this->getOption('query');
          $this->setWidgets(
                                   array(
                                           'id_tache_parent'     => new sfWidgetFormDoctrineChoice(
                                                array(
                                                    'model' => $this->getRelatedModelName('Tache'),
                                                    'add_empty' => true,
                                                    'query' => $query
                                                    )
    .....
    et ça fonctionne nickel.

    Merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] sfWidgetFormDoctrineChoice et option query
    Par erictomcat dans le forum Symfony
    Réponses: 1
    Dernier message: 03/05/2011, 12h07
  2. Modifier une option dans un programme (IE)
    Par Nuxiz dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 04/11/2006, 22h49
  3. [IE] Modifier une option dans la base de registre
    Par Oberown dans le forum Windows XP
    Réponses: 2
    Dernier message: 16/06/2006, 08h53
  4. [IDE][VS 2005] Comment modifier les options de l'éditeur ?
    Par Araldite dans le forum Visual Studio
    Réponses: 2
    Dernier message: 27/04/2006, 09h55
  5. Modifier une option pour la commande split
    Par vbcasimir dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 20/07/2005, 12h24

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