Bonjour !
Symfony est cool mais il y a beaucoup de non-dit dans le tuto.
J'ai mis en place un formulaire d'inscription sous symfony . Je n'ai
pas voulu utiliser les validateurs symfony car j'en avait déjà  qui
marchait correctement sous javascript et plus pratique. Tout se
présente parfaitement comme je le voulais sauf que mon formulaire ne
veut pas s'enregistrer quand je fais "$custommer->save". j'ai essayé
de trouver où se trouvait l'erreur et je constate que $form->isValid()
du formulaire renvoie False donc le bloc de code ne s'execute pas.
___________________________________
CODE___________________________________________

protected function processForm(sfWebRequest $request, sfForm $form)
  {
        $form->bind($request->getParameter($form->getName()), $request-
>getFiles($form->getName()));
    if ($form->isValid())
    {
      $customer = $form->save();
      $customer->setCustomerLevel(1); // 1 = Membre / 9 = Admin
      $customer->setCustomerAccountEtat(0); // 0 = Non activé / 1 =
Actif / 2 = Banni
      $customer->save();
      $this->redirect('customer/edit?customer_id='.$customer-
>getCustomerId());
    }
  }
__________________________________________________________________________________

Voici mes questions:

1- si je ne charge pas de fichier dans mon formulaire, suis je obligé
d'ajouter       $request->getFiles($form->getName()) quand je fait
      $form->bind($request->getParameter($form->getName()), $request-
>getFiles($form->getName())); ?

2- je cherche à installer swiftmailer en vain. je crois que je dois
dézipper un son package dans lib/vendor mais je n'arrive pas a le
télécharger. Ce serait cool si je pourrais avoir  un lien direct pour
avoir le .zip

3- Comment faire pour valider mon formulaire car dans le frontend_dev
il met comme erreur:
Warning: array_key_exists() [function.array-key-exists]: The first
argument should be either a string or an integer in C:\wamp\bin\php
\php5.3.0\PEAR\symfony\util\sfParameterHolder.class.php on line 53 ?

4- ou puis je tester pour savoir si mon formulaire envoie les valeur
saisie et comment lui dire à quelle champ dans ma base de donné il
doit lier les valeur envoyée par POST ?

      ****    echo $form->bind(......   ?

      ****    $this->widgetSchema->setNameFormat('customer[%s]'); ?

Voici mon code :
========================================================================
//newSuccess
<form class="frm" action="<?php echo url_for('create_account'); ?>"
method="POST" id="myform">
    <fieldset>
        <legend><?php echo __('Devient dès maintenant membre de
togoastuce'); ?></legend>
                <br><br>
    <ul class='formRegister'>
        <?php foreach ($form as $widget): ?>
        <?php if (!$widget->isHidden()) { ?>
         <li>
                <?php echo $widget->renderLabel(); ?>
                <span><?php echo $widget->renderHelp() ?></
span><br>
                <?php echo $widget->render() ?>
         </li>

         <?php } else { ?>
            <li><?php echo $widget->render() ?></li>
         <?php } ?>
        <?php endforeach; ?>
    </ul>

        <p><input class="DIAR_btn" onclick="controler(1,this.form);"
type="button" value="<?php echo __('S\'inscrire'); ?>"><input name=opt
type=hidden value=inscription><input id="diar_exist" type=hidden
value="<?php echo url_for('@ajax'); ?>"><div id="validmsg"></div></p>
    </fieldset>
</form>

=================================================================================
controler(1,this.form) //permet de valider mon formulaire et fait
aussi les différent contrôle javascript
=================================================================================
//CostumerForm.class.php
class CustomerForm extends BaseCustomerForm
{
  public function configure()
  {
        $this-
>useFields(array('customer_pseudo','customer_mail','customer_password'));
        $this->setWidgets(array(
      'insc_pseudo' => new sfWidgetFormInput(),
      'insc_email' => new sfWidgetFormInput(),
          'insc_conf_email' => new sfWidgetFormInput(),
      'insc_password' => new sfWidgetFormInputPassword(),
      'insc_conf_password' => new sfWidgetFormInputPassword(),
    ));

        $this->widgetSchema->setLabels(array(
          'insc_pseudo'    => 'Pseudo',
          'insc_email'   => 'E-mail',
          'insc_conf_email' => 'Confirmer votre e-mail',
      'insc_password'=> 'Mot de passe',
          'insc_conf_password' => 'Confirmer le mot de passe',
        ));
        $this->widgetSchema->setHelp('insc_pseudo', 'Ce nom sera visible au
publique.');
    $this->widgetSchema->setHelp('insc_email', 'Attention : Un méssage
de validation sera envoyé à cette adresse email.');
    $this->widgetSchema->setFormFormatterName('list');

  }

  public function updateCustomer_passwordColumn($value)
  {
    if(!empty($value)) { $value = md5($value); }
     return $value;
  }
}


-- 
Vous recevez ce message, car vous êtes abonné au groupe Google 
Groupes Symfony-fr.
Pour envoyer un message à ce groupe, adressez un e-mail 
à [email protected].
Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse 
[email protected].
Pour plus d'options, consultez la page de ce groupe : 
http://groups.google.com/group/symfony-fr?hl=fr

Répondre à