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 :

Comment retirer un champ d'un BaseFormDoctrine


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 120
    Par défaut Comment retirer un champ d'un BaseFormDoctrine
    Bonjour,

    J'ai la classe suivante :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    abstract class BaseProfilePostForm extends BaseFormDoctrine
    {
      public function setup()
      {
        $this->setWidgets(array(
          'id'              => new sfWidgetFormInputHidden(),
          'profile_from_id' => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('ProfileFrom'), 'add_empty' => false)),
          'profile_to_id'   => new sfWidgetFormDoctrineChoice(array('model' => $this->getRelatedModelName('ProfileTo'), 'add_empty' => false)),
          'message'         => new sfWidgetFormInputText(),
          'date'            => new sfWidgetFormInputText(),
          'validated'       => new sfWidgetFormInputCheckbox(),
        ));
     
        $this->setValidators(array(
          'id'              => new sfValidatorChoice(array('choices' => array($this->getObject()->get('id')), 'empty_value' => $this->getObject()->get('id'), 'required' => false)),
          'profile_from_id' => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('ProfileFrom'))),
          'profile_to_id'   => new sfValidatorDoctrineChoice(array('model' => $this->getRelatedModelName('ProfileTo'))),
          'message'         => new sfValidatorString(array('max_length' => 255)),
          'date'            => new sfValidatorPass(),
          'validated'       => new sfValidatorBoolean(array('required' => false)),
        ));
     
        $this->widgetSchema->setNameFormat('profile_post[%s]');
     
        $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);
     
        $this->setupInheritance();
     
        parent::setup();
      }
     
      public function getModelName()
      {
        return 'ProfilePost';
      }
     
    }
    Et la classe suivante aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class ProfilePostForm extends BaseProfilePostForm
    {
      public function configure()
      {
        unset($this['validated']);
      }
    }
    Lorsque je tente d'accéder au formulaire, j'ai l'erreur interne : Widget "validated" does not exit.

    Donc ma question est toute bête : Comment je peux faire en sorte que le gars ne puisse pas choisir si son ProfilePost est "validated" ou non ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    En toute logique ton code me semble correct, tu utilises la bonne méthode pour ne pas afficher un champ.

    A tu essayé de faire un clean complet des classes pour voir ce que ça donne ?
    - cc
    - doctrine:clean-model-files
    - doctrine:build --all-classes
    - cc

    Sinon dans ta fonction configure, essai d'afficher la liste des widgets qu'il a enregistré ( il doit y avoir une variable à dumper pour cela, de mémoire je peux pas te dire ), on pourra peut être comprendre ce qu'il se passe.

  3. #3
    Membre éprouvé

    Homme Profil pro
    Software Engineer
    Inscrit en
    Août 2004
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2004
    Messages : 173
    Par défaut
    L'erreur interne doit provenir de ta vue, dans ton template _form.php (ou autre nom que tu lui as donné) il doit encore y avoir un $form['validated'] quelque part, qui n'existe effectivement pas puisque tu as unset ce champ.

Discussions similaires

  1. [WD-2007] Comment retirer les sauts de ligne dans champs STYLEREF ?
    Par Golard dans le forum VBA Word
    Réponses: 10
    Dernier message: 27/06/2014, 04h35
  2. Comment je peux retirer des champs de formulaire ?
    Par keokaz dans le forum jQuery
    Réponses: 6
    Dernier message: 27/05/2012, 09h08
  3. Comment renommer un champ avec Module BD?
    Par technico dans le forum Bases de données
    Réponses: 4
    Dernier message: 27/01/2004, 21h24
  4. [CR] Comment trouver un champs dans un report ??
    Par Madduck dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 18/09/2003, 08h31
  5. [langage] Comment rajouter des champs dans une liste
    Par toto_titi dans le forum Langage
    Réponses: 4
    Dernier message: 28/08/2003, 14h09

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