Le 19 février 2011 15:23, diaris <[email protected]> a écrit :
> Bonjour !
Salut !


> 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.
Aïe ! C'est très dangereux... Tu ne seras jamais sûr de tes données
car en désactivant javascript je met ce que je veux dans les champs
;-)


> 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())); ?
Non


>
> 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
Si t'es en SF 1.3 ou 1.4 il n'y a rien à faire à part activer l'envoi
des emails dans le setting.yml
http://www.symfony-project.org/gentle-introduction/1_4/en/11-Emails
--> Configuration


>
> 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 ?
Il faut mettre un "%s" un nom à ton formulaire :
$this->widgetSchema->setFormFormatterName('list[%s]');


>
> 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 ?
--> Il manque les champs cachés
echo $form-renderHiddenFields();


>
>      ****    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;
>  }
> }

Bonne soirée !

-- 
Albin

-- 
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 à