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 :

[sf 1.4] - array_key_exists() error [1.x]


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 27
    Points : 27
    Points
    27
    Par défaut [sf 1.4] - array_key_exists() error
    Salut,
    je suis en train de créer un formulaire avec Symfony 1.4 et lors de la soumission, une erreur apparaît. Elle n'a pas l'air de gêner le déroulement du script (j'ai un bug sur la soumission mais ce n'est, d'après moi, pas dû à ça. Me tromperais-je ?).

    L'erreur en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: array_key_exists(): The first argument should be either a string or an integer in /var/www/blabla/pulling/lib/vendor/symfony/lib/util/sfParameterHolder.class.php on line 53
    Voici la partie du code qui merdouille :
    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
     
    public function processSaverdv(sfWebRequest $request, sfForm $form)
      {
        $form->bind(
          $request->getParameter($form->getName()),
          $request->getFiles($form->getName())
        );
     
        if ($form->isValid()){
          $rdv = new Rdv();
          $values = $request->getPostParameters();
          $idUser = $this->getUser()->getGuardUser()->getId();
     
          $rdv->setProId($values['pro_id']);
          $rdv->setDemandeurId($idUser);
          $rdv->setOffreId($values['offre_id']);
          $rdv->setNom($values['nom']);
          $rdv->setPrenom($values['prenom']);
          $rdv->setCp($values['cp']);
          $rdv->setPhone($values['phone']);
          $rdv->save();
        }
      }
    Le 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
    16
    17
    18
    19
    20
    21
    22
    23
    class RdvForm extends BaseRdvForm
    {
      public function configure()
      {
        $this->setWidgets(array(
          'nom'          => new sfWidgetFormInputText(),
          'prenom'       => new sfWidgetFormInputText(),
          'address'      => new sfWidgetFormInputText(),
          'cp'           => new sfWidgetFormInputText(),
          'phone'        => new sfWidgetFormInputText(),
          'offre_id'   => new sfWidgetFormInputHidden(),
          'pro_id'   => new sfWidgetFormInputHidden()
        ));
     
        $this->setValidators(array(
          'nom'          => new sfValidatorString(array('min_length' => 5)),
          'prenom'       => new sfValidatorString(array('min_length' => 5)),
          'address'      => new sfValidatorString(array('min_length' => 5)),
          'cp'           => new sfValidatorString(array('min_length' => 5)),
          'phone'        => new sfValidatorString(array('min_length' => 5))
        ));
      }
    }
    Si il y a besoin d'un autre extrait de code je le mettrais mais il me semble que c'est ici que ça bug.

    Je suis tout nouveau sur Symfony d'où ces "il me semble" et "ça n'a pas l'air".

    Merci d'avance à ceux qui prendront le temps de me répondre.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    je sais pas trop, généralement une erreur ou warning remonté par du code de symfony indique une mauvaise utilisation de ses fonctions.

    J'ai pas spécialement d'idée

    juste une petite remarque pour tes values:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
        $values = $request->getParameter($form->getName());
        $files = $request->getFiles($form->getName());
        $form->bind(
          $values,
          $files
        );
     
        if ($form->isValid()){
          $rdv = new Rdv();
          $idUser = $this->getUser()->getGuardUser()->getId();
    //etc
    car get parameters avec le nom du form te transforme les parametre de type nom_form[nomChamp] en $values[nomChamp]. tu test si ton formulaire est valide avec pour éviter tes problemes de sécurité, donc il ne faut pas les récupérer une deuxieme fois après qu'elles soient validées. et pour finir, get post parameters ne fait pas la transformation ci avant, donc ca peut etre source de problèmes ( désolé si c'est pas très clair ^^' )

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 27
    Points : 27
    Points
    27
    Par défaut
    Tout à fait clair, mais à la bourre : )
    Du coup tout a changé et ce souci de array_key_exists n'exists plus !
    Merci quand même

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2013
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 22
    Points : 15
    Points
    15
    Par défaut
    Tu peux aussi ajouter ca dans ton formulaire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $this->widgetSchema->setNameFormat('XXX[%s]');
     
    $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

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

Discussions similaires

  1. ERROR: pg_atoi: zero-length string
    Par steelspirit92 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2003, 22h29
  2. [SQL Server] Error converting data type varchar...
    Par Sir Tengu dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 13/06/2003, 10h46
  3. [Kylix] Kylix c++ error
    Par pacpac dans le forum EDI
    Réponses: 2
    Dernier message: 10/06/2003, 16h27
  4. [CR] Print Engine error text
    Par afaraji dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 03/09/2002, 15h44
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51

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